Я иногда сталкиваюсь с проблемами, когда программно работаю с двумя или более документами Word одновременно.
В моем приложении я слушаю кнопки Philips SpeechMike, одна из которых используется для сохранения и закрытия документа Word. Может быть несколько процессов моего приложения (все слушают на кнопках), которые имеют ноль или одно слово документа.
При сохранении различных документов Word из моего соответствующего процесса я столкнулся с COMException, поскольку я попытался включить это параллельное использование:
Из C # со сборками Word Interop:
System.Runtime.InteropServices.COMException (0x800706BA):
Der RPC-Server ist nicht verfügbar. (Ausnahme von HRESULT: 0x800706BA)
bei Microsoft.Office.Interop.Word.Range.get_Start()
(англ .: RPC-сервер недоступен. (Исключение в HRESULT …..)
Из C ++: при вызове saveObject () для IContainer, HRESULT равен 0x80004005 (не указан сбой), и я также испытываю ошибку 0x800706BA верхнего уровня.
Оба метода работают нормально, пока я только вызываю Word последовательно. Поэтому мой вопрос таков: поддерживаются ли одновременные параллельные вызовы для одного экземпляра / процесса Word (но с разными документами), и если да, то нужно ли заранее выполнить настройку? Например. поменять квартиру?
Я прочитал (но больше не могу его найти), что по умолчанию используется модель квартиры STA, и все звонки ставятся в очередь — это означает, что мне не нужно беспокоиться, и все должно работать как есть !?
Задача ещё не решена.
Других решений пока нет …