在我的应用程序中,我有一个用户控件,使用线程池执行异步操作。线程池方法如下所示:
private void AsyncFunction(对象状态) { ……做的 计算 </跨度> //刷新 格 </跨度> UI线程上的数据 this.BeginInvoke(new MethodInvoker(()=&gt; { …更新ui
Control.IsDisposed
您可以尝试使用像这样的同步对象 的EventWaitHandle 发信号通知工作线程主线程即将终止。然后工作线程可以结束其执行。
您可以使用 Control.IsDisposed 属性。
try { if(!this.IsDisposed) { this.BeginInvoke(new MethodInvoker(() => { // update my control } )); } } catch ( InvalidOperationException ) { // Do something meaningful if you need to. }