У нас есть приложение, которое может экспортировать и импортировать данные в/из MS Project. Количество данных может быть значительным - 1000 задач. Но даже с небольшими частями данных мы заметили странное поведение Project - это может вызвать исключение «приложение занято» в вашем лице, когда вы выполняете более одной операции подряд. Например. создать новую задачу и прочитать ее дату окончания. Он может даже выбросить это исключение в качестве первой операции после того, как вы только что создали объект приложения. Значение:Как избежать исключений «приложение занято» при работе с MS Project через com interop?
var projectApp = new Application();
projectApp.Open(...);
Во второй строке мы можем получить это исключение только потому, что приложение Project по-прежнему загружается.
Я попытался добавить Thread.Sleep, но это не очень хорошо, потому что для некоторых операций требуется больше времени, чем другие, и время, необходимое для работы, различно на разных компьютерах (из-за производительности).
Итак, квестуин: Есть ли способ обнаружить, что приложение Project занято, не получая эти неизбирательные исключения все время?
Google "C# CoRegisterMessageFilter" для хитов. –