【发布时间】:2010-11-22 02:02:03
【问题描述】:
大家下午好!
我有这个线程化的SerialPort 包装器,它从串行端口读取一行。这是我线程的代码。
protected void ReadData()
{
SerialPort serialPort = null;
try
{
serialPort = SetupSerialPort(_serialPortSettings);
serialPort.Open();
string data;
while (serialPort.IsOpen)
{
try
{
data = serialPort.ReadLine();
if (data.Length > 0)
ReceivedData(serialPort, new ReceivedDataEventArgs(data));
}
catch (TimeoutException)
{
// No action
}
}
}
catch (ThreadAbortException)
{
if (serialPort != null)
serialPort.Close();
}
}
当我调用myThread.Abort(); 时,我得到一个异常(没有行或对代码的引用)“安全句柄已关闭”。谁能发现我做错了什么?谢谢。
顺便说一句,我有一个 Start() 和一个 Stop(),它们分别创建线程并中止线程。
【问题讨论】:
标签: c# multithreading exception serial-port stream