[英]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.