我正在审查我写的一些C# CF2.0串口通信代码。我不使用DataReceived事件,因为它不可靠。MSDN指出:
DataReceived事件不能保证为每个接收到的字节都会触发。使用BytesToRead属性确定缓冲区中还有多少数据需要读取。
我使用read()轮询端口,并有一个委托在读取数据时处理该数据。我还在某处读到过“轮询是糟糕的”(没有给出解释)。
除了通常的线程注意事项以外,你有什么想法为什么轮询可能是不好的?- 我有一个单独的线程(后台线程)轮询端口,在读取数据后该线程退出,经过测试运行良好。