gpt4 book ai didi

c# - 串行端口数据接收事件处理程序

转载 作者:太空宇宙 更新时间:2023-11-03 23:48:02 26 4
gpt4 key购买 nike

我正在用 C# 从串口读取数据,如下所示:

mySerialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);

如果函数 DataReceivedHandler 是计算密集型的,有没有办法确保在接收到下一个数据时它不会等待前一个函数完成,而是使用新数据启动另一个 DataReceivedHandler 实例?

最佳答案

嗯,我不认为 Gh0st22 的回答同时是合理的。首先,已经从串行端口类内部的线程池调用了 DataReceivedHandler。其次,我没有看到实现或提及锁定。处理串行缓冲区将是一场噩梦,所以让我们退后一步。

您是否真的在观察您担心会发生的问题?请参阅我多次引用的这个很棒的响应:

https://social.msdn.microsoft.com/Forums/vstudio/en-US/e36193cd-a708-42b3-86b7-adff82b19e5e/how-does-serialport-handle-datareceived?forum=netfxbcl#298028ff-2b76-4685-947c-f68291882b09

如果您绝对必须启动另一个线程,请考虑读取可用的串行数据并将其作为参数传递。否则,您只会给自己和项目的任何 future 维护者造成巨大的困惑。

关于c# - 串行端口数据接收事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26919090/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com