2016-01-28 44 views
-1

我正在開發windows窗體應用程序。我正在使用單獨的線程與串行端口進行通信。在按鈕單擊我關閉串口並中止使用Thread.Abort()線程。但我越來越如何在c中安全關閉串口#

線程被中止異常。

private void button1_Click(object sender, EventArgs e) 
{ 
    Thread1.Abort(); 
    if (isPortOpened) 
    {     
     serialPort1.DataReceived -= DataReceivedHandler; 
     serialPort1.Close();     
    } 
} 
+1

執行結束在'finally'塊 –

+6

'Thread.Abort'被顯式調用。你能指望什麼?你應該[永遠永遠不會永遠***調用'Thread.Abort'](http://stackoverflow.com/questions/3632149/question-about-terminating-a-thread-cleanly-in-淨)。真。你應該發信號給線程完成,然後調用'Thread1.Join'來等待,直到它完成。 – spender

+0

嘗試刪除以下行:'Thread1.Abort();'。一旦刪除,不會再放回。 –

回答