在串口通信中,我的要求是发送&一次接收多个信号。我使用了线程概念,当一个线程运行时带有串口 - 模式打开读取信号它工作正常,但是当我尝试执行第二个线程将数据发送到com端口时。在这里我收到错误消息 -
异常类型=" System.UnauthorizedAccessException
源=" System.IO.Ports.InternalResources.WinIOError
访问端口' COM9'被拒绝。
请帮助!!!
答案 0 :(得分:1)
这不可能像你描述的那样。
对于特定端口,您一次只能打开一个句柄。
原则上,您可以同时使用来自多个线程的相同句柄来发送数据,但如果从发送线程A接收3个字节,然后从发送线程B接收2个字节,那么您认为接收端会发生什么?来自线程A的另一个字节,依此类推?
如果您使用定义良好的数据包协议(可以是您自己的或标准协议),您可以使用锁定来阻止其他线程在发送完整数据包时抓取端口。