SerialPort.Write() - 如何停止写?

时间:2009-04-20 12:22:46

标签: c# serial-port blocking

我使用SerialPort类在C#中开发。 SerialPort.Write()是一种阻止方法。 当我想停止写作时,如何退出此方法?我用一个线程写。 当我想停止写入但是COM端口继续写入时,我中止了这个线程。

有什么想法吗?

非常感谢。

对不起我的基本英语。

2 个答案:

答案 0 :(得分:1)

串行端口的流和UART都将进行缓冲。

最好的方法是发送小包(行)并中断写入线程,让最后一个发送包退出。如果你可以以民事方式停止写作,那么还有DiscardWriteBuffer()方法。

如果小包不是一个选项,你至少可以将WriteBufferSize设置为小(但是> 0)。

答案 1 :(得分:0)

要摆脱SerialPort.Write()使用SerialPort.DiscardOutBuffer()的阻止状态。这会导致IOException,但只要您能够彻底摆脱阻塞状态,就可以了。