c# MSOffice Interop Word 不会杀死 winword.exe

标签 c# interop zombie-process

我正在编写一个需要 MSWord 文档解析器的应用程序。

我正在使用 Microsoft.Office.Interop.Word.Document 从文档中提取文本,但即使我使用 doc.Close() 文档,从 taskManager 中我也可以看到 winword.exe 没有被杀死,在解析了几十个文档之后,它消耗了很多资源。

close() 是错误的方法吗?

请帮助我并指出正确的方向以正确终止这些进程。 =)

~~~更新~~~

感谢大家的帮助。我使用 app.quit() 并运行一个循环来检查进程和已解决的问题! =)

最佳答案

你在打电话吗 Application.Quit ,此外,由于您正在执行 Interop,因此可能值得发布 RCW wrapper .

所以基本上是这样的:

yourWordAppObject.Quit();
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(yourWordAppObject);

注意一些人使用:ReleaseComObject但是有一些potential pitfalls

关于c# MSOffice Interop Word 不会杀死 winword.exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7070124/

相关文章:

c# - Func Invoke,有没有更好的解决办法

c# - ProgressBar 在 Windows 窗体中很慢

objective-c - 如何让编译器默认使用 `nullable`

c++ - 强制父进程收割子进程 <defunct>

c# - Linq 选择相同的 ID 并删除其他

c# - 在 C# 中按空格拆分字符串

c# - 从单线程进行 COM 调用会挂起线程

c# - foreach 中的 Excel Interop CustomDocumentProperties 导致挂起

linux - 在Linux中处理SIGCHLD、EINT和accept()的正确方法

Python 3 : subprocess causes zombies