我有一个应用程序可以监听 USB 转串口转换器上的硬件。我的应用程序应该同时监控多个串口。
我循环我需要监听的串行端口,并为每个端口创建一个线程。在线程中我有我的数据处理例程。
当我分配一个端口时,它运行完美。当我听另一个时,它也有效。然而,当我打开两个端口时,第二个端口在调用 serialPort.Open()
时总是抛出 UnauthorizedAccessException
。无论我打开端口的顺序如何,第二个总是失败。
我在 while 循环中使用 serialPort.ReadLine()
监听端口。
.NET 可以同时打开多个端口吗?我可以听两个吗?或者我应该使用另一种(线程安全的?)方式来访问我的串行端口事件?
最佳答案
异常有一个非常的特定含义,它告诉您有人已经打开了端口。那会是谁?当您打开第二个端口时,请仔细检查四次您真的使用了不同的端口名称。
下一步是将 USB 仿真器带到 parking 场,然后用您的汽车从它身上碾过几次,这样它就不会再让程序员发疯了。从使用不同设备驱动程序供应商的另一家制造商那里获取一个。
关于c# - 如何在 C# 中异步监听多个串口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2631360/