个人研究认为串口类的读操作都是同步方法,为了防止同步接受数据时由于超时等问题使主线程死锁,建议使用线程异步接受数据,如:
//异步读取
private void AsyReceiveData(object serialPortobj)
{
SerialPort sp = (SerialPort)serialPortobj;
System.Threading.Thread.Sleep(1000);
MessageBox.Show(sp.ReadExisting());
sp.Close();
}
//开启接收数据线程
private void ReceiveData(SerialPort sp)
{
//异步接收数据线程
Thread threadReceiveSub = new Thread(new Parameterized
ThreadStart(AsyReceiveData));
threadReceiveSub.start}
串口类的读操作都是同步方法
最新推荐文章于 2021-02-12 10:13:34 发布