我有一个应用程序可以监听USB转串口转换器上的硬件。我的应用程序应该同时监视多个串行端口。
我循环我需要监听的串口,并为每个端口创建一个线程。在线程中,我有我的数据处理程序。
当我指定一个端口时,它运行完美。当我听另一个时,它也有效。但是,当我打开两个端口时,第二个端口在调用UnauthorizedAccessException
时总是抛出serialPort.Open()
。按打开端口的顺序无关紧要,第二个总是失败。
我在while循环中使用serialPort.ReadLine()
收听端口。
.NET可以同时打开多个端口吗?我可以听听两者吗?或者我应该使用另一种(线程安全的?)方式来访问我的串口事件?
答案 0 :(得分:3)
该异常具有非常特定的含义,它告诉您有人已经打开了端口。那可能是谁?当您打开第二个时,使用不同的端口名称对您真正进行四次三次检查。
下一步是将USB模拟器带到停车场并与您的汽车一起跑几次,这样它就再也无法驱动程序员。从使用其他设备驱动程序供应商的其他制造商处获取一个。