如何在C#中异步侦听多个串行端口

时间:2010-04-13 16:36:57

标签: c# .net serial-port

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

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

当我指定一个端口时,它运行完美。当我听另一个时,它也有效。但是,当我打开两个端口时,第二个端口在调用UnauthorizedAccessException时总是抛出serialPort.Open()。按打开端口的顺序无关紧要,第二个总是失败。

我在while循环中使用serialPort.ReadLine()收听端口。

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

1 个答案:

答案 0 :(得分:3)

该异常具有非常特定的含义,它告诉您有人已经打开了端口。那可能是谁?当您打开第二个时,使用不同的端口名称对您真正进行四次三次检查。

下一步是将USB模拟器带到停车场并与您的汽车一起跑几次,这样它就再也无法驱动程序员。从使用其他设备驱动程序供应商的其他制造商处获取一个。