我正在尝试通过使用 BlockingCollection 来实现数据包生产者-消费者行为,但我无法理解其中的文档。据我所知,由于显然不能保证我可以删除任何东西,因此系统太慢而无法用于接收和处理数据包等性能关键的事情。我需要这个的原因是因为接收数据包的线程与处理它们的线程不同。我错过了什么,还是我需要采取另一种方法?
示例代码:
public BlockingCollection<byte[]> unprocessedPackets = new BlockingCollection<byte[]>();
public void Producer()
{
...Recieve packets...
unprocessedPackets.Add(packet);
}
public void Consumer(){
while(true)
{
byte[] packet = unprocessedPackets.Take();
...If i took something, process it.
}
}