多线程发送,接收串口数据 自己 up 下 System.Threading.ThreadPool.QueueUserWorkItem()是不是先放进去的请求先执行,如果是的话,跟我监听的结果就不一致了。本因发送数据的请求在先,接收数据的请求在后,应当先执行发送请求,可实际上先执行接收数据请求 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 串口的读定是独占的,所以读写必须要协调好。一般是一个读一个写的线程或者任务就可以了。我写的是用两个task,一个读一个写。因为com是独占性的(本质上是IO操作),所以多个线程一起写com时,很容易引起并发,而导致各种不可意料的情况出现,所以发数据部分使用一个task或者一个线程操作为上。其次在读取com口的数据时,com数据是一段一段的。里面其实是一个内存空间,设备不断的往里写数据,然后我们不断的从com中读取数据,所以读取的数据是间歇性的,是片断性的。必须基于通讯的协议进行后续的重组处理,比如返回的数据中是以某个特殊的标志开始,如01,又以特殊的标志结束,如ff。可能会疑问,那数据中有可能会有大量的01和ff这样的值,那怎么判断哪个是数据哪个是标志呢?这就是协议通信时的协议起到作用。需要在特定的位置增加一个长度,比如紧跟在01后的就是表示长度的,然后读取到这个长度的数据就是所要的数据了。再之后就是新的数据。 思路是对的,一个线程写数据是可行的,但当上位机发送命令后,下位机需要立即返回数据,该种处理方式不知道是否合理,没有测试过。用线程同步可以做到多线程发送,本质上还是你刚描述的,COM是独占的。 思路是对的,一个线程写数据是可行的,但当上位机发送命令后,下位机需要立即返回数据,该种处理方式不知道是否合理,没有测试过。用线程同步可以做到多线程发送,本质上还是你刚描述的,COM是独占的。嗯。我们开发的项目中是用两个线程,一个读一个写实现的,而且运行的效果还可以。 VS2005 TFS团队资源管理器无法登录——TF31003 相同事件的调用 选中有问题 给指定的ELEMENT追加一个属性节点如何操作(在线等待,谢谢!) 一个数据库插入的问题 DataRow中RowFilter疑难请教 大家有没有参加过东软的培训的,到底怎么样?给小弟一些意见吧! 谁有c#在线邮件收发系统?推荐也有分!!!!!!!! 新手:书上的列子编译不通过。谢谢! 如何改变Xml文档已有的Declaration 能上传一此C#开发WPF的一些简单案例嘛 救命啊!跨线程调用窗体问题。用了委托方法,但是方法里有while(true),打开窗体就假死,各位大神帮帮我!
因为com是独占性的(本质上是IO操作),所以多个线程一起写com时,很容易引起并发,而导致各种不可意料的情况出现,所以发数据部分使用一个task或者一个线程操作为上。
其次在读取com口的数据时,com数据是一段一段的。里面其实是一个内存空间,设备不断的往里写数据,然后我们不断的从com中读取数据,所以读取的数据是间歇性的,是片断性的。必须基于通讯的协议进行后续的重组处理,比如返回的数据中是以某个特殊的标志开始,如01,又以特殊的标志结束,如ff。
可能会疑问,那数据中有可能会有大量的01和ff这样的值,那怎么判断哪个是数据哪个是标志呢?这就是协议通信时的协议起到作用。需要在特定的位置增加一个长度,比如紧跟在01后的就是表示长度的,然后读取到这个长度的数据就是所要的数据了。再之后就是新的数据。
思路是对的,一个线程写数据是可行的,但当上位机发送命令后,下位机需要立即返回数据,该种处理方式不知道是否合理,没有测试过。用线程同步可以做到多线程发送,本质上还是你刚描述的,COM是独占的。
思路是对的,一个线程写数据是可行的,但当上位机发送命令后,下位机需要立即返回数据,该种处理方式不知道是否合理,没有测试过。用线程同步可以做到多线程发送,本质上还是你刚描述的,COM是独占的。
嗯。我们开发的项目中是用两个线程,一个读一个写实现的,而且运行的效果还可以。