簡體   English   中英

C#.Net中任何告訴我串行端口數據的事件接收到的事件停止接收數據

[英]Any Event in C#.Net which tell me Serial Port dataReceived event stop Receiving data

我正在使用C#進行串行端口實現。 我正在從SerialPort獲取數據,並將該數據添加到集合的隊列類型(全局聲明)中。 我正在使用BackgroundWorker線程來處理Queue中的數據。 問題是。 如果串行端口停止發送數據和接收到的數據停止接收數據,則在我的隊列中仍然有一些數據需要處理。 有什么辦法告訴我沒有來自串行端口的數據,或者說Port_dataReceived停止接收任何數據。 這樣我就可以處理Queue中存在的任何數據。 因為這一次,我將確保現在不會有來自串行端口的任何數據,無論隊列中的數據是要處理的最后剩余數據。 在此先感謝-Chetan

如果您使用的是System.IO.Ports.SerialPort,那么我不相信有內置的東西。您需要自己編寫代碼。

您是否有理由不能僅使用DataReceived事件並處理傳入的數據?

這很棘手,因為您必須處理以下事實:SerialPort偵聽器在不同的線程上運行,因此您可能需要擔心線程的安全性,但是可以設置全局DateTime變量並在DataReceived事件中對其進行更新,然后檢查在您的代碼中查看最近一次接收數據是否已超過n秒。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM