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.
}
}