串口:可以发送&一次接收多个信号

时间:2015-08-19 09:47:41

标签: c# serial-port

在串口通信中,我的要求是发送&一次接收多个信号。我使用了线程概念,当一个线程运行时带有串口 - 模式打开读取信号它工作正常,但是当我尝试执行第二个线程将数据发送到com端口时。在这里我收到错误消息 -

异常类型=" System.UnauthorizedAccessException

源=" System.IO.Ports.InternalResources.WinIOError

访问端口' COM9'被拒绝。

请帮助!!!

1 个答案:

答案 0 :(得分:1)

这不可能像你描述的那样。

对于特定端口,您一次只能打开一个句柄。

原则上,您可以同时使用来自多个线程的相同句柄来发送数据,但如果从发送线程A接收3个字节,然后从发送线程B接收2个字节,那么您认为接收端会发生什么?来自线程A的另一个字节,依此类推?

如果您使用定义良好的数据包协议(可以是您自己的或标准协议),您可以使用锁定来阻止其他线程在发送完整数据包时抓取端口。