个人研究认为串口类的读操作都是同步方法,为了防止同步接受数据时由于超时等问题使主线程死锁,建议使用线程异步接受数据,如:
//异步读取
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}
串口类的读操作都是同步方法
最新推荐文章于 2024-11-02 12:55:16 发布
本文介绍了一种通过创建独立线程实现串口数据异步读取的方法,以避免因同步读取导致的主线程阻塞问题。该方法通过定义异步读取函数并在新线程中执行来实现。
992

被折叠的 条评论
为什么被折叠?



