Удаление Microsoft.Office.Interop.Word.ApplicationC#

Место общения программистов C#
Ответить
Anonymous
 Удаление Microsoft.Office.Interop.Word.Application

Сообщение Anonymous »

(Что-то вроде продолжения сообщения (которое осталось без ответа): https://stackoverflow.com/q/6197829/314661)

Используя следующее код

Код: Выделить всё

Application app = new Application();
_Document doc = app.Documents.Open("myDocPath.docx", false, false, false);
doc.PrintOut(false);
doc.Close();
Я пытаюсь открыть и распечатать файл программным способом.

Проблема заключается в том, что каждый раз, когда я запускаю вышеуказанное, коде запускается новый процесс WINWORD.exe, и, очевидно, он быстро съедает всю память.

Похоже, что класс приложения не содержит метода Dispose/Close или аналогичного метода. .

После небольшого исследования я (понял) и изменил код на следующий.

Код: Выделить всё

 Application app = new Application();
_Document doc = app.Documents.Open(fullFilePath + ".doc", false, false, false);
doc.PrintOut(false);
doc.Close();
int res = System.Runtime.InteropServices.Marshal.ReleaseComObject(doc);
int res1 = System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
И я вижу, что оставшееся количество ссылок равно нулю, но процессы остаются?

PS: Я использую версию 14 библиотеки Microsoft.Office.Interop.

Подробнее здесь: https://stackoverflow.com/questions/677 ... pplication
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»