thread = new Thread(getData);
thread.Start();
接收串口数据的方法.
getData 先关串口出现.由于线程退出或应用程序请求,已放弃 I/O 操作。
sp1.Close();
sp1.DiscardInBuffer();
thread.Abort();
先关线程就已关闭 Safe handle
thread.Abort();
sp1.Close();
sp1.DiscardInBuffer();
我改怎么办啊...不出问题把这些关掉.
thread.Start();
接收串口数据的方法.
getData 先关串口出现.由于线程退出或应用程序请求,已放弃 I/O 操作。
sp1.Close();
sp1.DiscardInBuffer();
thread.Abort();
先关线程就已关闭 Safe handle
thread.Abort();
sp1.Close();
sp1.DiscardInBuffer();
我改怎么办啊...不出问题把这些关掉.
我现在改成了这个样子.bool tf=true;getdata(){while(tf){接收处理.}}到了需要关闭串口的时候.tf=false;sleep(500);sp1.close();这样的话我用bool来控制读取串口与否就可以thread.Abort()不要了吧.
{
sp.Close();
return;
}这就可以了。而外部调用程序顶多只需要设置tf标志,它没有指责去调用什么sp.Close()。其实它根本不需要知道sp是什么东西,对于sp的操作职责不应该纠缠到两个对象中,专门的设备应该有专门的对象控制。