我的应用程序通常在10-20个线程上运行,这些线程几乎每秒都会向GUI发送事件以更新某些控件。
当用户关闭这些应用程序的中间时,与这些事件相关的所有更新都会导致多次随机崩溃。主要是ObjectDisposedException
和NullReferenceException
。
由于.NET Framework已经抛出但尚未处理的事件,因此它们不处于我可以取消它们的状态。
我不太确定处理此问题的最佳方法。目前我只是吞下例外情况。
答案 0 :(得分:4)
一些选择:
FormClosing
?)时,您可以开始干净地退出线程(通过某处的标记)答案 1 :(得分:1)
除了Marc Gravell's suggestions之外,还有以下几点:
Environment.HasShutdownStarted
例外的任何事情之前检查ObjectDisposed
.IsDisposed
(所有表单和控件都有)