我将一个线程初始化为静态线程,如下所示
Thread GenerateKeywords;
private void btnStart_Click(object sender, EventArgs e)
{
//Initializes the Test Thread
Test = new Thread(TestMethod);
//Sets the apartment state to Static
Test.SetApartmentState(ApartmentState.STA);
//Starts the GenerateKeywords Thread
Test.Start();
}但是当我通过这个方法中止这个线程时
private void btnStop_Click(object sender, EventArgs e)
{
if (Test != null)
Test .Abort();
}它给出了以下异常:“mscorlib.dll中发生了'System.Threading.ThreadAbortException‘类型的第一次机会异常,线程0x13dc已退出,代码为0 (0x0)。”
如何摆脱这种异常??
发布于 2010-09-21 18:29:24
ThreadAbort异常应该不是问题。未处理的ThreadAbortException是仅有的两种不会导致应用程序关闭的异常类型之一(另一种是AppDomainUnloadException)。
将其包装在ThreadAbort类型的try catch和handle异常中并设置Thread.ResetAbort = true;
有关更多详细信息,请查看此link。
发布于 2010-09-21 18:23:17
你应该在运行线程时轮询一些条件,以便在按钮停止时中止it.Set某个布尔变量,然后在线程方法中轮询它以中止它。
https://stackoverflow.com/questions/3759317
复制相似问题