0

我正在开发一个 winforms 应用程序。我有一个串行端口列表,每个端口都在不同的 COM 端口上侦听。

我计划为所有 SerialPorts 添加一个唯一的事件处理程序 SerialPort.DataReceived。这是一个好的设计吗?谢谢你。

4

1 回答 1

1

嗯,当然,这没有错。而且通常非常有用,因为 DataReceived 事件处理程序应该尝试接收整个“数据包”,然后再将其交给处理数据的其他代码。特别是如果您使用 BeginInvoke 在 UI 线程上运行代码。不同的设备通常有不同的协议,因此在它们各自的事件处理程序中需要不同的代码。或不同的缓冲区来存储部分响应。

或者不是,所有设备都运行相同并且共享相同的事件处理程序代码将起作用。您需要将sender参数转换为 SerialPort 以进行正确的 Read 调用。在您的问题中,几乎没有什么可以猜测的适当方式。

于 2012-10-24T18:01:28.243 回答