У меня есть асинхронное окно WPF, работающее поверх Excel в отдельном потоке. Я пытаюсь использовать вызовы API C, встроенные в библиотеку ExcelDna.Utilities, чтобы получить доступ к большим объемам данных, разбросанным по различным книгам / таблицам Excel.
Любой попытка вызова выдает ошибку, которую я предполагаюпотому что он работает в другом потоке и не получает доступ к потоку, запущенному в Excel, чтобы получить объект Application.
Когда я пытаюсь сделать то же самое с помощью макроса (метод ac #, вызываемый кнопкой ленты), он работает сбез проблем. Это первая подсказка, чтобы убедиться, что это проблема с потоками.
Я новичок в многопоточности, но, насколько я знаю, я должен вызывать его из объекта Dispatcher. Проблема в том, что я не могу придумать, как это сделать.
Мои предположения верны, или есть еще одна вещь, которую я просто пропускаю? Если так, как получить доступ к '' ExcelDna.Utilities.XLApp '' из Dispatcher?
ExcelDna.Utilities.Workbook[] workbooks = ExcelDna.Utilities.XLApp.Workbooks;
Кстати, Office.Interop работает в потоке окна, но это не вариант для меня.