Алгоритм обработки потребительских потоков .NET двух очередей (на основе приоритета)

У меня есть приложение C # 4.0 с очередями с «высоким приоритетом» и «низким приоритетом», реализованными как таковые:

BlockingCollection highPriority = new BlockingCollection (1000); BlockingCollection lowPriority = new BlockingCollection (1000);

Любые данные, созданные в highPriority, должны использоваться перед любыми данными, созданными в lowPriority. Особенность здесь в том, что данные могут быть отправлены в любую из двух очередей в любое время. Итак, после того, как я использую все данные в highPriority, я буду использовать любые данные, которые могут быть в lowPriority. Если новые данные создаются в highPriority, в то время как я использую данные в lowPriority, я хочу закончить использование текущего элемента в lowPriority, а затем переключиться обратно и обработать данные в highPriority.

Может ли кто-нибудь предложить алгоритм, который поможет с этим? Псевдокод в порядке. Большое спасибо.

5
задан bmt22033 1 April 2011 в 16:56
поделиться