「高優先度」と「低優先度」のキューが次のように実装されたC#4.0アプリがあります。
BlockingCollection highPriority = new BlockingCollection(1000); BlockingCollection lowPriority = new BlockingCollection(1000);
highPriorityで生成されたデータは、lowPriorityで生成されたデータよりも先に消費する必要があります。ここでのひねりは、データがいつでも2つのキューのいずれかに生成される可能性があることです。したがって、highPriorityですべてのデータを消費した後、lowPriorityである可能性のあるすべてのデータを消費します。lowPriorityでデータを消費しているときに、highPriorityで新しいデータが生成された場合、lowPriorityで現在のアイテムの消費を終了してから、切り替えてhighPriorityでデータを処理したいと思います。
誰かがこれを助けるためのアルゴリズムを提案できますか?擬似コードは問題ありません。どうもありがとう。