簡體   English   中英

STA線程中止異常

[英]STA thread Abort Exception

我正在將線程初始化為靜態線程,如下所示

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)。”

如何擺脫這種異常?

您應該在運行線程時輪詢某些條件以便中止它。在按鈕停止時設置一些布爾變量,然后在線程方法內輪詢它以中止它。

ThreadAbort異常應該不是問題。 未處理的ThreadAbortException是僅導致應用程序關閉的兩種異常類型之一(另一種是AppDomainUnloadException)。

將它包裝在try catch中並處理ThreadAbort類型的異常並設置Thread.ResetAbort = true;

查看此鏈接了解更多詳情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM