我在想我的程序中正确处理串口通信的最佳方法。我有一些设备向我发送数据,即时通过DataRecieved事件和ReadExisting方法在其中进行收集。它读取的所有内容都放在缓冲区中,当最后一行等于某个字符串时,我开始将它解析为某种数据包。处理COM串口通信
除此之外,当我发送数据到该设备并等待响应,我标记标志
bool isReady = false;
while(!isReady)
Thread.Sleep(500);
而在数据解析方法I该标志设置为真,所以当我收到分组数据时,代码可以跳出这个循环并根据需要继续工作。但在我看来,这不是一个干净/好的方法来做到这一点。有时候会出现问题,如果设备不会发送我需要的数据包,那么程序就永远停留在循环中。
我想知道,你们如何解决你的代码中的这种情况?
谢谢,对不起英文不好。
听起来就像您正在使用DataReceived事件。不要使用它,你没有用处。只需直接调用Read()。 –