Excel - получение ошибки во время выполнения 1004 Ошибка ODBC

ладно, из комментариев, которые мне придумали. Я пытался увидеть, как идти, и получить COM-объект из моего рабочего потока, прежде чем поток закончится. было бы слишком сложно изменить код, так что поток пользовательского интерфейса создает COM-объекты, прежде чем я начну рабочий рабочий поток, потому что я не могу создать COM-объекты до середины рабочего потока. И тут меня осенило. Когда я добираюсь до части рабочего потока, который создает COM-объекты, просто отправляйте его в поток пользовательского интерфейса. теперь это может быть не лучшее решение, но оно работает. здесь приведен фрагмент кода о том, как это сделать в рабочем потоке.

private void workerthread(string e)
{
    //code removed for simplicity..

    //Create COM object for excel app & excel workbook in Main thread to prevent object reference loss
    App.Current.Dispatcher.Invoke((Action)delegate
    {
        MyGlobals.xlApp = Activator.CreateInstance(Type.GetTypeFromProgID(MyGlobals.ExcelprogID));
        MyGlobals.xlWorkBook = MyGlobals.xlApp.Workbooks.Add(MyGlobals.misValue);
    });
    MyGlobals.xlApp.Visible = true; 
    //more code here to do stuff with excel.
}
1
задан Andrew Ohanian 19 January 2019 в 15:07
поделиться