SThreshold MSComm To SerialPort

本文关键字:SerialPort To MSComm SThreshold | 更新日期: 2024-10-29 15:57:27

我有一个VB6项目,我正在尝试将其转换为c#。该项目使用属性 myMSComm.SThreshold = 1 的 MSComm,c# 中 serialPort 的等效项是什么?

SThreshold MSComm To SerialPort

没有直接的等价物,SerialPort 没有 TransmitBufferEmpty 事件。 在现代硬件上,这是非常无意义的事件,UART有一个FIFO,即使在传输缓冲区为空后,它也会缓冲输出并继续传输字节。

你可以通过使用 SerialPort.BaseStream.BeginWrite() 方法来模拟它。 您指定的回调在写入完成后运行。 然后,您可以再次调用 BeginWrite() 来写入更多数据。 与 SThreshold 值 1 不完全相同,因为当 BeginWrite 完成时传输缓冲区将已满。 请注意,回调在线程池线程上运行,因此您必须小心联锁。