Есть ли способ узнать, был ли объект утилизирован () или нет?

У меня есть следующий объект, который позже в моем коде я хочу распоряжаться (), если он существует. Есть ли способ узнать, существует ли он?

Public objExcel As Excel.Application

Лучшее, что я могу придумать, это поместить утилизацию в блок try... catch следующим образом:

Try
   objExcel.dispose()
Catch ex As Exception
   'do nothing
End Try

У кого-нибудь есть более изящный, менее хитрый метод?

2 ответа

Решение

Чтобы полностью избавиться от объекта Excel, вам необходим класс маршала. System.Runtime.InteropServices.Marshal, Вам также нужно выпустить все объекты Excel в обратном порядке - рабочий лист, рабочая книга, объект Excel. Если нет, вы можете увидеть процесс Excel в диспетчере задач.

System.Runtime.InteropServices.Marshal.FinalReleaseComObject(obgExcel)

Сначала проверьте, инициализирован ли объект, затем вы можете безопасно утилизировать его.

If objExcel isnot nothing then objExcel.dispose()
Другие вопросы по тегам