码迷,mamicode.com
首页 > Windows程序 > 详细

C#串口通信遇到的坑

时间:2017-10-20 15:56:32      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:解决方案   有一个   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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!