Czytaj plik Excel za pomocą OleDB c #, gdy jest używany przez inny proces

Próbuję odczytać plik programu Excel co 2 sekundy. Ten plik jest aktualizowany przez inną aplikację RTD.

Jestem w stanie odczytać ten plik przez połączenie Oledb, ale problem pojawia się, gdy próbuję go odczytać co 2 sekundy. Z 10 prób jest w stanie czytać tylko 4-5 razy, a przy innych próbach rzuca wyjątek.

Ciąg połączenia

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\nids\shes.xlsm;Extended Properties="Excel 12.0 Macro;HDR=Yes;IMEX=1"

Kod

//opening connection to excel file

using (OleDbConnection connection = new OleDbConnection(constr))//constr = connection string
{
    try
    {  
        connection.Open();
        isconopen = true;
    }
    catch
    {
        dispatcherTimer2.Start();

        connection.Close();
        isconopen = false;
    }

    // If connection is ok , then query sheet  
    if (isconopen == true)
    {
        strcon = "SELECT * FROM [" + dsheet + "]";

        using (OleDbDataAdapter adapter = new OleDbDataAdapter(strcon, connection))
        {

            try
            {


                adapter.Fill(result);
                isread = true;
                adapter.Dispose();

                connection.Close();
            }
            catch 
            {

                isread = false;
                dispatcherTimer2.Start();

                adapter.Dispose();
                connection.Close();

            }

        }
     }

    //if able to retrieve data then call some other function 
    if (isread == true)
    {
        converToCSV(0);// for further processing
    }

Pomóż mi, próbuję tego od ostatniego miesiąca. Proszę, proszę, pomóż mi

questionAnswers(3)

yourAnswerToTheQuestion