【发布时间】:2015-09-16 13:27:13
【问题描述】:
我想做一个有两个索引的循环缓冲区:
- WriteIndex(由第一个线程控制)将新值写入缓冲区
- ReadIndex(由第二个线程控制)从缓冲区读取值并分析它
那么,当两个索引位于同一位置时,如何暂停线程。 我的意思是,如果你没有写入任何新数据,你就无法读取它,所以如果 writeindex 和 readindex 在同一位置,你只需要写入新数据,而不是读取它。
如何阻塞线程直到发生某些事情?
【问题讨论】:
-
您真的需要一个循环缓冲区还是任何有界线程安全集合都需要?
-
我真的不需要它,但我需要暂时保存一些数据。我正在通过 FTD2XX_NET 从设备读取字节,然后我试图找到网络数据包,检查 CRC 等。所以第一个线程应该通过 FTDI 读取数据并将它们保存到缓冲区,第二个线程应该读取缓冲区并寻找网络数据包我希望你能理解我。我很难形容^^
标签: c# multithreading circular-buffer