当前位置: 代码迷 >> .NET组件控件 >> 在做弹出窗口时用到Thread.Abort(),经常引发ThreadAbortException 错误
  详细解决方案

在做弹出窗口时用到Thread.Abort(),经常引发ThreadAbortException 错误

热度:4420   发布时间:2013-02-25 00:00:00.0
在做弹出窗口时用到Thread.Abort(),经常引发ThreadAbortException 异常
查询中数据量多,程序等待时间较长,在提交查询时加了一个等待窗口,,

代码如下:

//等待窗口 启动
Thread thPIC = new Thread(new ThreadStart(waitfmshow));
thPIC.Name = "waitfmshow";
thPIC.Priority = ThreadPriority.Normal;
thPIC.Start();

。。.查询代码

Thread.Sleep(100);
thPIC.Abort(); //查询关闭

//等待窗口
public void waitfmshow()
{
  WaitingForm waitfm = new WaitingForm();
  Application.Run(waitfm);
 }


现在问题是提交太频繁时经常出现 ThreadAbortException,无奈啊。。。

------解决方案--------------------------------------------------------
if (thPIC.IsAlive)
{
thPIC.Abort();
}
------解决方案--------------------------------------------------------
通过标志,在线程中要对标志做相应的处理 
然后关闭时,先打开标志,用线程Join来等待结束
catch(ThreadAbortException ex) 


}
  相关解决方案