[填坑]SerialPort的“端口被關閉”


一年前用winform給公司做了一個軟件,用到了電子秤,因此使用了SerialPort來讀串口數據。

做完后,DataReceived事件里偶爾出現“端口被關閉”錯誤,都是在關閉串口后出現。

(出錯位置要么是讀數據ReadLine,要么時清除緩存DiscardInBuffer)

當時研究了半天沒解決,想着影響不大,就直接上線用了;同事反映bug時,我就叫他重啟軟件即可。。。坑了๑乛◡乛๑

 

 

直到今天,需要改功能,改完后本地測試時又出現了⊙▂⊙,就順便上網再找下資料。

終於在博客園看到類似這問題的兄弟,而一樓的大大就說了原因:SerialPort.Close就和文件的關閉一樣,在關閉時會flush發送緩沖區的內容。


一下就明白了。。。然后馬上把DiscardInBuffer換到Close前,運行調試,試了十幾次,真的沒再出現了。↖(^ω^)↗

灰常蟹蟹“告訴”大大,解決了一年前的坑!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM