C#串口通信遇到的坑

2021-05-04 21:26

阅读:484

标签:解决方案   有一个   received   ros   指令   log   http   元素   tps   

C#串口通信中有一个DataReceived事件可以委托一个接收函数。此接收函数是运行在辅线程(secondary thread)上的。如果要在这个函数中修改主线程中的一些元素,比如UI界面上的变量的值,必须使用委托的方式。DataReceived所注册的接收函数和主线程中的发送函数是异步的。如若想用同步的方式进行发送和接收。阻塞读是一个解决方案。阻塞读是指如果发送的指令没有接收完毕,那么接收方法被堵塞。此时也不能发送下一条指令。串口中有一个readLine方法是阻塞读的。部分代码如下:

 String order1;
 order1 = "命令一";
sp1.WriteLine(order1);
 sp1.ReadLine();  
order1 = "命令二";
sp1.WriteLine(order1);

如果命令一发送后,sp1的readLine方法没有接收完毕。在这里就是接收一行。那么命令二是不会继续执行的。

 

C#串口通信遇到的坑

标签:解决方案   有一个   received   ros   指令   log   http   元素   tps   

原文地址:http://www.cnblogs.com/liquan/p/7699653.html


评论


亲,登录后才可以留言!