C 中SerialPort類接收資料的多執行緒問題

2021-08-21 13:12:05 字數 470 閱讀 9201

學習c#進行串列埠讀寫的時候我發現乙個問題:期望傳送一次接收一次,接著馬上再傳送一次接收一次(傳送接收的資料輸出到終端),會看到先傳送兩次再接收資料,而這時候只能接收到一次的資料。

sp.datareceived += new serialdatareceivedeventhandler(自定義方法);
原因在msdn的文件中可以看到(

這裡我雖然沒有對介面的元素進行修改,但我在自己繫結的方法中有100ms的延時,即輔助線程在執行會延時100ms。主線程中傳送兩次資料沒有延時,因此會出現直接傳送兩次而接受一次資料的情況。解決方法是在主線程中兩次傳送之間也設定相應的延時。

system.threading.thread.sleep(200);

C 中SerialPort類 隨筆

有時,對串列埠供電需要設定dtrenable 和rtsenable 兩個屬 在開發中有些串列埠裝置需要串列埠供電,使用c 中的serialport類預設情況下不會出發 datareceived函式,但使用超級終端卻可以接收到資料,這是因為 serialport 類的dtrenable 和rtsena...

C 中顯現串列埠通訊SerialPort類

名 稱 說 明 basestream 獲取 serialport 物件的基礎 stream 物件 baudrate 獲取或設定序列波特率 breakstate 獲取或設定中斷訊號狀態 bytestoread 獲取接收緩衝區中資料的位元組數 bytestowrite 獲取傳送緩衝區中資料的位元組數 c...

串列埠通訊Serial Port類C 實現

串列埠介紹 串列埠叫做序列介面,也稱序列通訊介面,按電氣標準及協議來分包括rs 232 rs 422 rs485 usb等。rs 232 c rs 422與rs 485標準只對介面的電氣特性做出規定,不涉及接外掛程式 電纜或協議。usb是近幾年發展起來的新型介面標準,主要應用於高速資料傳輸領域。rs...