首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于在线程里使用Invoke访问UI控件关闭软件时的有关问题

2013-12-04 
关于在线程里使用Invoke访问UI控件关闭软件时的问题在一个线程里通常需要访问UI控件,但在关闭程序的时候,

关于在线程里使用Invoke访问UI控件关闭软件时的问题
在一个线程里通常需要访问UI控件,但在关闭程序的时候,通常会报出“无法访问已释放的对象”。
加了以下都没有用。


 if (this != null && !this.IsDisposed && this.IsHandleCreated)
 {
        this.Invoke(new EventHandler(delegate      //MJ:用BeginInvoke反而会引起阻塞,关闭程序的时候"无法访问已释放的对象"
         {
               if (!txtMagneticField.IsDisposed) ...
         }
 }

这种需求是比较常见的。出现这个问题的原因无非是可能线程还没结束掉,但是控件已经释放掉了,有什么好的方法解决?
[解决办法]
txtMagneticField有可能被释放之后才执行dispose

热点排行