#c_sharp #net #com
Использую для своего приложения MVC парсер для word документа. Я заметил что после того как парсер отработает, документ остаётся в памяти. Использовал метод : Marshal.ReleaseComObject(Doc); Marshal.ReleaseComObject(MSWord); но он не помогает, объект всё ещё висит в памяти. Как удалить объект типа System.__COMObject из памяти? Проблемные строки: Word.Application MSWord = new Word.Application(); Word.Document Doc = MSWord.Documents.Open(urlDocMenu, ConfirmConversions: true); После этих строк появляется объект в памяти и я не знаю как его удалить
Ответы
Ответ 1
По-моему, код может быть примерно таким: var wordApp = new Microsoft.Office.Interop.Word.Application(); wordApp.Visible = true; var doc = wordApp.Documents.Open(urlDocMenu); ... doc.Close(); wordApp.Quit();Ответ 2
Согласно информации из msdn Marshal.FinalReleaseComObject(Val) гарантированно уберет все ссылки и позволит закрыться объекту.Ответ 3
По моему app.Quit() работает корректно, но можно еще и попробовать поставить значение app = null потом вызвать сборщика мусора GC.Collect().
Комментариев нет:
Отправить комментарий