與許多人一樣,我遇到DataReceived事件未觸發的問題。C#強制SerialPort.DataReceived事件觸發
使用它之後,我在BytesToRead計數下包裝了我的處理過程,所以如果我錯過了一次火災,我可以接收我離開的地方。看起來像它會解決我所有的問題。
問題是,有時甚至不會觸發一次。根據發回的數據包,這可能是絕對關鍵的,迫使我重新啓動應用程序和設置過程,因爲它依賴於能夠處理響應。
通過閱讀對類似問題的一些回答,我沒有更接近地保證該活動將按照最低要求進行啓動。 Microsoft mentions the issue with DataReceived不被保證觸發爲每個字節,但我這上面注意到:
如果接收到EOF字符,而不管字節在內部輸入緩衝器的數量和值的DataReceived事件檢索也上升ReceivedBytesThreshold屬性。
所以我的問題是,我可以強制通過我的串行連接EOF字符強制事件觸發?這個角色會是什麼,0x1A?
如果我不能強制通過串行的EOF字符,我的選擇是什麼?我的第一個想法可能是創建一個任務來監視事件觸發,如果它不觸發,通過任務觸發操作。