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

Kri*_*spy 12 c# interop zombie-process

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

我正在使用Microsoft.Office.Interop.Word.Document从文档中提取文本,但即使我使用doc.Close()文件,从taskManager我可以看到winword.exe没有被杀死,并且在解析之后几十个文件,它吃掉了一些资源.

是close()错误的方法?

请帮助我,并指出如何正确终止这些过程的正确方向.=)

~~~更新~~~

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

kd7*_*kd7 17

您是否正在调用Application.Quit,另外因为您正在使用Interop,所以可能值得发布RCW包装器.

所以基本上是这样的:

yourWordAppObject.Quit();
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(yourWordAppObject);
Run Code Online (Sandbox Code Playgroud)

请注意一些人使用:ReleaseComObject,但有一些潜在的陷阱