我有一個VB6項目,我試圖轉換爲C#。 該項目使用MSComm屬性myMSComm.SThreshold = 1,什麼是在C#中的串行端口等效?SThreshold MSComm到SerialPort
0
A
回答
0
沒有直接的等價物,SerialPort沒有TransmitBufferEmpty事件。在現代硬件上這是相當無意義的事件,UART具有一個FIFO,它將緩衝輸出並在發送緩衝區爲空時繼續傳輸字節。
您可以通過使用SerialPort.BaseStream.BeginWrite()方法稍微模擬它。指定的回調在寫入完成時運行。然後,您可以再次調用BeginWrite()以寫入更多數據。與SThreshold值1不完全相同,因爲當BeginWrite完成時發送緩衝區將被填滿。請注意,回調在線程池線程上運行,因此您必須小心地進行互鎖。
-1
MSComm和Serialport並不常見。如果需要從MSComm轉移到串行端口,但避免更改軟件的工作部分,則沒有多少選項。一個衆所周知的庫SuperCom提供了一個MSComm兼容的ActiveX,可以與VB網絡和C#一起使用。這意味着幾乎沒有變化。 A NET class library也包括,其行爲非常類似於MSComm屬性和方法。它完全兼容32位和64位的Windows, Windows XP,7,8,10。
相關問題
- 1. SerialPort與MSComm
- 2. mscomm oncomm事件
- 3. 串行到Excel VBA沒有MSCOMM
- 4. 在Qt中使用mscomm ActiveX
- 5. 將MSComm VB6轉換爲C#
- 6. 發送的hexstring到的SerialPort
- 7. SerialPort UnauthorizedAccessException
- 8. SerialPort性能
- 9. SerialPort類問題
- 10. C#serialPort速度
- 11. SerialPort閱讀java
- 12. Perl設備:: SerialPort
- 13. 使用的SerialPort
- 14. 節點的SerialPort
- 15. 的SerialPort(SerialDataReceivedEventArgs)System.InvalidOperationException
- 16. 的serialport錯誤
- 17. VB6 MSComm混合ASCII和二進制
- 18. MsComm ActiveX是否與Delphi 2010兼容?
- 19. MSVS C#SerialPort接收到數據丟失
- 20. SerialPort沒有收到任何數據
- 21. SerialPort(.net) - 沒有找到端口
- 22. SerialPort等待響應
- 23. System.Threading.Timer和SerialPort讀取
- 24. node.js/express/mysql/serialport/socket.io
- 25. SerialPort StopBits Windows7 C++/CLI
- 26. SerialPort意外關閉
- 27. 的SerialPort檢查CTS
- 28. c#SerialPort WriteTimeout使用?
- 29. SerialPort通信問題
- 30. 從node.js和arduino serialport的arduino serialport接收值
謝謝你的回答。我只想了解一些東西,如果發送緩衝區是空的,它會發送什麼? – user2109003
當然沒有。這不是問題。 –