如何在 C# 中异步监听多个串口

Kam*_*oij 5 .net c# serial-port

我有一个应用程序可以监听 USB 转串口转换器上的硬件。我的应用程序应该同时监视多个串行端口。

我循环需要监听的串行端口,并为每个端口创建一个线程。在线程中我有我的数据处理例程。

当我分配一个端口时,它运行完美。当我听另一首时,它也有效。然而,当我打开两个端口时,第二个端口UnauthorizedAccessException在调用时总是抛出一个serialPort.Open()。无论我以什么顺序打开端口,第二个端口总是失败。

serialPort.ReadLine()我在 while 循环中监听端口。

.NET 可以同时打开多个端口吗?我可以两者都听吗?或者我应该使用另一种(线程安全?)方式来访问我的串行端口事件?

Han*_*ant 5

该异常有一个非常具体的含义,它告诉您有人已经打开了该端口。那会是谁?当您打开第二个端口时,请仔细检查四次,确保您确实使用了不同的端口名称。

下一步是将 USB 仿真器带到停车场,用你的车在它上面碾压几次,这样它就不会再让程序员发疯了。从使用不同设备驱动程序供应商的另一家制造商处获取一个。

  • USB 设备破坏提示+1。所有 USB 转串口设备绝对不相同。 (2认同)