如何在c#中安全地关闭串口

时间:2016-01-28 13:26:15

标签: c#

我正在开发Windows窗体应用程序。我正在使用单独的线程与串口通信。在按钮上单击我关闭串口并使用Thread.Abort()中止线程。但是我得到了

  

线程正在中止异常。

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

1 个答案:

答案 0 :(得分:4)

正在明确调用

Thread.Abort。你能指望什么?

你应该never, ever, ever, ever call Thread.Abort。真。

您应该向线程发出信号以完成,然后调用Thread1.Join等待它完成正常结束