与许多人一样,我遇到DataReceived事件未触发的问题。C#强制SerialPort.DataReceived事件触发
使用它之后,我在BytesToRead计数下包装了我的处理过程,所以如果我错过了一次火灾,我可以接收我离开的地方。看起来像它会解决我所有的问题。
问题是,有时甚至不会触发一次。根据发回的数据包,这可能是绝对关键的,迫使我重新启动应用程序和设置过程,因为它依赖于能够处理响应。
通过阅读对类似问题的一些回答,我没有更接近地保证该活动将按照最低要求进行启动。 Microsoft mentions the issue with DataReceived不被保证触发为每个字节,但我这上面注意到:
如果接收到EOF字符,而不管字节在内部输入缓冲器的数量和值的DataReceived事件检索也上升ReceivedBytesThreshold属性。
所以我的问题是,我可以强制通过我的串行连接EOF字符强制事件触发?这个角色会是什么,0x1A?
如果我不能强制通过串行的EOF字符,我的选择是什么?我的第一个想法可能是创建一个任务来监视事件触发,如果它不触发,通过任务触发操作。