我正在使用一个 C# 程序,该程序利用 Microsoft Office Interop,允许您基本上以编程方式使用 Microsoft Word、Excel 和 PowerPoint。
我遇到的一个不幸的方面是,有时程序会弹出一个对话框来暂停代码。例如,如果代码突然无法保存在您期望能够保存的位置,则可能会发生这种情况,这意味着即使该问题稍后得到解决,您的整个程序也可能会暂停。
在许多其他情况下,可能会出现额外的对话框。
所以我的目的是为此实现某种超时机制,这样我就可以终止 Interop 实例,而不是让整个程序都被捆绑起来。谁能建议一种方法来做到这一点?目前,它将 Interop 调用包装在 System.Action 中,并在给定时间后中止该线程,但我想知道是否有更好的方法。
最佳答案
您可以通过实现 OLE 消息过滤器来实现此目的。请参阅this answer了解更多详情。
关于c# - Microsoft Office 互操作超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17467843/