c# - Microsoft Office 互操作超时

标签 c# ms-office office-interop

我正在使用一个 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/

相关文章:

.NET MS Interop Word 不在 UTF8 网页中保存文档

c# - Microsoft.Office.Interop.Word 程序集版本高于引用版本

c# - 将二维数组分成 8x8 block c#

iOS MS Powerpoint - 打开应用程序文件(离线)

c# - 实现异步 "read all currently available data from stream"操作

events - 我如何知道 VBA 宏中的文件已被修改?

docker - Microsoft Word 在 Docker 容器中调用其 COM 时崩溃

c# - 在 C# 中查找同义词

c# - 如何在具有 ExpandoObject 类型的对象上应用扩展方法?

c# - WP中的MVVM和枢轴控制