我如何避免“应用”忙碌.通过COM Interop与MS Project合作时



我们有一个应用程序,该应用程序可以向/从MS项目导出数据。数据量可能很重要-1000多个任务。但是,即使有了小数据部分,我们也注意到了奇怪的项目行为 - 当您连续进行1个以上的操作时,它可能会在您的脸上抛出"应用程序忙"的例外。例如。创建一个新任务,并阅读其完成日期。刚创建应用程序对象之后,它甚至可以将此异常作为第一个操作。含义:

var projectApp = new Application();
projectApp.Open(...);

在第二行,我们可以因为项目应用程序仍在加载而捕获此例外。

我尝试添加thread.sleep,但这不是一个好方法,因为某些操作需要比其他操作更多的时间,并且操作所需的时间在不同的计算机上是不同的(由于性能)。

所以Questuin是:是否有一种方法可以检测项目应用程序忙碌而没有始终获得这些无法挑选的例外?

将sta应用于线程任务,并使用通过Google找到的OlemessageFilter寄存器/撤销解决问题!感谢Hans Passant的评论,这使我得到了这个答案!

相关内容

  • 没有找到相关文章

最新更新