首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >STA线程中止异常

STA线程中止异常
EN

Stack Overflow用户
提问于 2010-09-21 18:18:11
回答 2查看 1.8K关注 0票数 7

我将一个线程初始化为静态线程,如下所示

代码语言:javascript
复制
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();
}

但是当我通过这个方法中止这个线程时

代码语言:javascript
复制
private void btnStop_Click(object sender, EventArgs e)
{

 if (Test != null)
         Test .Abort();
}

它给出了以下异常:“mscorlib.dll中发生了'System.Threading.ThreadAbortException‘类型的第一次机会异常,线程0x13dc已退出,代码为0 (0x0)。”

如何摆脱这种异常??

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-21 18:29:24

ThreadAbort异常应该不是问题。未处理的ThreadAbortException是仅有的两种不会导致应用程序关闭的异常类型之一(另一种是AppDomainUnloadException)。

将其包装在ThreadAbort类型的try catch和handle异常中并设置Thread.ResetAbort = true;

有关更多详细信息,请查看此link

票数 2
EN

Stack Overflow用户

发布于 2010-09-21 18:23:17

你应该在运行线程时轮询一些条件,以便在按钮停止时中止it.Set某个布尔变量,然后在线程方法中轮询它以中止它。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3759317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档