调用方法永远不会返回

时间:2008-12-17 20:16:35

标签: c# .net com

我正在使用COM组件。有一个方法可以调用组件,并且在我的应用程序中多次使用此方法,对于要处理的每个文档,都会调用此方法。

有时突然发生一件奇怪的事情,无论处理的文件数量多少,都可以在处理60,100或300个文件后发生,或者只是不发生。奇怪的是:对组件的调用不会返回。该方法一直停留在调用行中。你知道可能导致这个问题的任何COM特殊性吗?

1 个答案:

答案 0 :(得分:1)

根据您的问题,我知道您正在使用文档进行COM自动化。如果您的COM对象是文档处理应用程序(MS Office是正确的猜测吗?)那么可能是应用程序被弹出窗口阻止了。

当您自动化时,这种现象经常发生Word或Excel。你应该做几件事来解决这个问题(我在这里谈论MS Word):

  • 通过相应地设置Application.DisplayAlerts来禁用警报
  • 安装完整的产品以避免Windows Installer弹出窗口要求缺少功能
  • 实现一个超时机制,如果任何模态对话框请求用户输入,它将终止应用程序。原因是某些类型的弹出窗口无法抑制(如果您需要进一步的信息,请询问)。