1

这更多是理论上的问题,而不是实践中的问题,因为我目前无法测试它,因为我缺少一个相当庞大的设备来测试我正在创建的程序。我的问题是,串行端口会在其生命周期内关闭而不SerialPort.Close()被调用吗?此外,在调用该方法之前是否存在连接超时的风险?

此外,是否有任何理由在发出命令后关闭它并在需要提交新命令时重新打开它,或者始终保持打开状态是否安全?

4

1 回答 1

4

串行连接(即物理连接或端口对象)永远不会超时,即使您拔下电缆。但是,如果串口是 USB 转换器,如果 USB 端被拔下,设备可以被禁用,这将中断串行连接。

SerialPort 是 IDisposable,所以如果你处理它,它将关闭。

仅当您执行读取并且没有数据时才会发生串行超时。这对 SerialPort 设备或连接没有影响。(串行超时也可能发生在写入时,但这不太常见。这仅在涉及握手并且接收器阻塞接收时才会发生。)

于 2013-07-18T21:21:16.073 回答