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

标签 c# .net serial-port

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

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

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

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

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

最佳答案

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

下一步是将 USB 仿真器带到 parking 场,然后用您的汽车从它身上碾过几次,这样它就不会再让程序员发疯了。从使用不同设备驱动程序供应商的另一家制造商那里获取一个。

关于c# - 如何在 C# 中异步监听多个串口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2631360/

相关文章:

c# - 找出具体异常

c# - 使用 Func 作为 LinqToEntities 的参数

c - 为什么MTK只显示 'F'

android - 无需轮询即可访问串行端口 (/dev/tty*) 传入数据

.net - 需要临时报告组件

linux - 有时串口读取给出转换后的值[垃圾值]

c# - NHibernate MySQL 映射设置列类型

c# - TFS 2013 API - 检索对 WI 所做的所有更改

asp.net - 异步/等待和异步 Controller ?

c# - 即使此 Func<> 变量为空,是什么导致内存分配?