C#:SerialPort.Open超时?

gda*_*rio 6 c# serial-port

我有一个自动检测线程,尝试按顺序打开端口并匹配接收到的数据,从而检测相关设备发送数据的端口.现在,有一些端口,SerialPort.Open只挂起线程约30秒.如何在SerialPort.Open函数上设置超时?

SwD*_*n81 5

MSDN
每个 SerialPort 对象只能存在一个打开的连接。

任何应用程序的最佳做法是在调用 Close 方法后等待一段时间,然后再尝试调用 Open 方法,因为端口可能不会立即关闭。

当您调用 Close() 时,此工作线程需要时间来减速并退出。所需的时间量未指定,您无法验证它是否已完成。您所能做的就是等待至少一秒钟,然后再次调用 Open()。


Nat*_*pos 1

在您的代码中添加以下内容:

commPort = new SerialPort();

commPort.ReadTimeout = 1000000;
commPort.WriteTimeout = 1000000;
Run Code Online (Sandbox Code Playgroud)

我建议你看看SerialPort.Open Method