c# MSOffice Interop Word will not kill winword.exe

可紊 提交于 2019-11-30 01:43:54

问题


I'm writing an application that needed a MSWord document parser.

I'm using Microsoft.Office.Interop.Word.Document to extract the texts from the documents, but even if i use doc.Close() the document, from taskManager i can see that winword.exe are not killed, and after parsing a couple dozens documents it eats up some much resources.

is close() the wrong method?

please help me and point me to the right direction on how to terminate these processes properly. =)

~~~update~~~

Thanks for all the help. I use the app.quit() and also ran a loop that checks for the process and problem solved! =)


回答1:


Are you calling Application.Quit , additionally since you're doing Interop it may be worthwhile to release the RCW wrapper.

So basically something like:

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

Note some folks use: ReleaseComObject but there are some potential pitfalls




回答2:


You must quit the application instance using app.quit(). Document.close() will just close the document. I also suggest setting app.visible = true when you're done processing so your user can close it themselves if all else fails.




回答3:


If you want to end the process you need to call Quit on the Application object - see http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.applicationclass.quit%28v=office.14%29.aspx




回答4:


After performing the app.Quit(), you must do app = null; From my experiences, this will prevent leftover processes from hanging around. Just be sure to do the app.Quit() and app = null in your exception handler as well.




回答5:


I am thinking close just handles the document open inside word. Remember you can have more than 1 word document open with 1 application. You may want to try either a dispose method, or look at the word objects quit/exit methods (can't remember its been a while).



来源:https://stackoverflow.com/questions/7070124/c-sharp-msoffice-interop-word-will-not-kill-winword-exe

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!