读书人

在做弹出窗口时用到Thread.Abort()经

发布时间: 2012-03-17 19:06:27 作者: rapoo

在做弹出窗口时用到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)
{

}

读书人网 >.NET

热点推荐