有没有办法在应用程序崩溃时发布com对象?在应用程序崩溃时发布com对象
我有以下代码:
public class Application
: IDisposable
{
private bool disposed = false;
private object realApplication;
public void Dispose()
{
Dispose(true);
}
private void Dispose(bool disposing)
{
if (!disposed) {
if (realApplication!=null) {
Marshal.ReleaseComObject(realApplication);
realApplication = null;
}
disposed = true;
}
GC.SuppressFinalize(this);
}
...
~Application()
{
Dispose(false);
}
}
但它只是在正常的应用程序紧密释放COM对象。
它是什么样的崩溃?在任何情况下,您都无法保证能够运行这种清理代码。 (例如,考虑一下如果用户通过任务管理器杀死你的应用程序会发生什么。) – 2010-07-07 07:50:13
他们是否在一个out-proc服务器? – sharptooth 2010-07-07 07:51:04
>它是什么样的崩溃? 我正在测试控制台应用程序。我只是通过关闭按钮关闭它(我认为它类似于通过任务管理器杀死) >他们在一个out-proc服务器? 是的。 >这是一个WinForms应用程序吗? 第 – 2010-07-07 08:01:48