我在C#应用程序中使用System.IO.Ports.SerialPort
类时遇到了一些小问题。我目前已经在SerialPort
类之上编写了一个线程安全类,并且在Read
和Write
之间出现短时间问题。
例如,我可以Write
一个命令,然后Read
一个响应。此行为在lock
语句中,一旦锁定释放,我可能会发生Write
,然后是另一个Write
Read
。在我的第二个Read
我有时会收到一个空的String
。
现在这只是为了概述我的问题,但试图提出一个可以回答的问题。我只是在寻找有关何时使用DiscardOutBuffer
和DiscardInBuffer
的信息? 基本上是否有关于何时使用这些功能的约定?此外,缓冲区是否会在基础SerialPort
实施中自动丢弃?
我必须假设我的问题在于缓冲区。要么缓冲区太早丢弃,要么缓冲区没有及时清除。