c# MSOffice Word-Interop-nicht töten winword.exe
Bin ich eine Anwendung schreiben, brauchte ein MSWord Dokument parser.
Ich bin mit Microsoft.Office.Interop.Wort.Dokument zum extrahieren der Texte aus den Dokumenten, aber selbst wenn ich doc.Close() das Dokument, aus dem taskManager kann ich sehen, dass winword.exe nicht getötet, und nach der Analyse ein paar Dutzende Dokumente, die er frisst etwas viel Ressourcen.
ist close() die falsche Methode?
bitte helfen Sie mir und zeigen Sie mir die richtige Richtung, so beenden Sie diese Prozesse richtig. =)
~~~update~~~
Dank für all die Hilfe. Ich benutze die app.beenden() und lief auch eine Schleife, die überprüft, für den Prozess und das problem ist gelöst! =)
Passant Nicht wirklich etwas zu tun mit dem Garbage Collector. Er ruft nicht die richtige Methode, um aufzuräumen.
InformationsquelleAutor Krispy | 2011-08-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Rufen Sie - Anwendung.Beenden , zusätzlich seit du tust Interop kann es sinnvoll sein, die Freigabe der Wrapper (RCW).
Also im Grunde so etwas wie:
Hinweis: einige Leute benutzen: ReleaseComObject aber es gibt einige potenzielle Fallstricke
InformationsquelleAutor kd7
Müssen Sie beenden die Instanz der Anwendung mit app.beenden(). Dokument.close() wird nur das Dokument zu schließen. Ich empfehle auch die Einstellung app.visible = true, wenn Sie fertig sind Verarbeitung, so dass Ihre Benutzer schließen können, selbst wenn alles andere fehlschlägt.
Passant Oh shit, du hast Recht. Wie gehen wir über das tun dies? Vor allem in Fällen, in denen Sie möchten, dass das Dokument für den Benutzer sichtbar sein und geschlossen werden, indem Sie als gut.
InformationsquelleAutor MGZero
Wenn Sie möchten, beenden Sie den Prozess, müssen Sie rufen Sie
Quit
auf dieApplication
Objekt - sehen http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.applicationclass.quit%28v=office.14%29.aspxInformationsquelleAutor Yahia
Nach dem ausführen der app.Beenden(), die Sie tun müssen app = null; Aus meinen Erfahrungen, dies wird verhindern, dass übrig gebliebene Prozesse aus hanging around. Nur sicher sein, um die app.Beenden() und app = null in Ihrer exception-handler als gut.
InformationsquelleAutor k.schroeder31
Denke ich schließen Sie einfach die Griffe öffnen Sie das Dokument in word. Denken Sie daran, Sie können auch mehr als 1 word-Dokument öffnen, mit 1 Anwendung. Sie möchten möglicherweise versuchen, entweder eine dispose-Methode, oder schauen Sie in der word-Objekte quit/exit-Methoden (kann mich nicht erinnern, es ist schon eine Weile).
InformationsquelleAutor Mathew A.