为了账号安全,请及时绑定邮箱和手机立即绑定

C#中多线程调用Com接口如何操作?

C#中多线程调用Com接口如何操作?

墨色风雨 2018-11-15 19:15:49
C#中多线程调用Com接口如何操作
查看完整描述

1 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

1)一般的来说,要保证实时性(接收实时性以及发送的实时性),对串口操作采用多线程:一个线程负责接收;另一个线程负责发送。
2)在 .Net类库中 System.IO.Ports.SerialPort就是采用这种方案:即无论你程序是否启动额外线程来处理窗口接收与发送,System.IO.Ports.SerialPort类都是按照多线程方式工作!
3)在MSDN关于SerialPort 类的文档中,请注意SerialPort类有个属性BaseStream。这个属性用于显式异步 I/O 操作,即多线程方式操作串口
4)同样,在MSDN文档中关于SerialPort.DataReceived 事件的说明中有这么一句话:“……从 SerialPort 对象接收数据时,将在辅助线程上引发 DataReceived 事件……”,意思很明白:DataReceived事件是在主线程之外的另一个辅助线程上引发的!
====
说了这么多,结论很简单:
串口通讯绝对适合使用多线程编程,因为System.IO.Ports.SerialPort本身就支持多线程操作;当然,你完全可以绕开System.IO.Ports.SerialPort提供的多线程机制,实现自己的单线程输入与输出操作。除非你有你特定的需求,这样做显然不是上策。

查看完整回答
反对 回复 2018-12-15
  • 1 回答
  • 0 关注
  • 1148 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信