【发布时间】:2014-11-18 19:19:45
【问题描述】:
我正在尝试通过使用 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.
}
}
【问题讨论】:
标签: c# multithreading network-programming blockingcollection