1

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

有任何想法吗?

非常感谢。

对不起我的基本英语。

4

2 回答 2

1

Serial Port 的 Stream 和 UART 都会做缓冲。

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

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

于 2009-04-20T12:50:18.367 回答
0

打破使用阻塞SerialPort.Write()状态 SerialPort.DiscardOutBuffer()。这会导致一个IOException问题,但只要您可以干净地摆脱阻塞状态就可以了。

于 2010-02-03T11:27:02.893 回答