我使用SerialPort
类在C#中开发。
SerialPort.Write()
是一种阻止方法。
当我想停止写作时,如何退出此方法?我用一个线程写。
当我想停止写入但是COM端口继续写入时,我中止了这个线程。
有什么想法吗?
非常感谢。
对不起我的基本英语。
答案 0 :(得分:1)
串行端口的流和UART都将进行缓冲。
最好的方法是发送小包(行)并中断写入线程,让最后一个发送包退出。如果你可以以民事方式停止写作,那么还有DiscardWriteBuffer()方法。
如果小包不是一个选项,你至少可以将WriteBufferSize设置为小(但是> 0)。
答案 1 :(得分:0)
要摆脱SerialPort.Write()
使用SerialPort.DiscardOutBuffer()
的阻止状态。这会导致IOException
,但只要您能够彻底摆脱阻塞状态,就可以了。