Я пишу службу Windows для использования сообщений MSMQ. Служба будет иметь периоды высокой активности (80 тыс. Сообщений поступают очень быстро) и длительные периоды бездействия (может быть несколько дней без нового сообщения).
Обработка сообщений очень привязана к сети, поэтому я получаю большую выгоду из parallelism. Но в периоды бездействия я не хочу связывать цепочку потоков, ожидающих сообщений, которые не придут в ближайшее время.
Интерфейс MSMQ, похоже, очень сфокусирован на синхронном рабочем процессе - получает одно сообщение, обрабатывает его, получает другое и т.д. Как мне структурировать свой код, чтобы я мог использовать parallelism в периоды высокой активности, но не связывать кучу нитей в периоды отсутствия активности? Бонусные баллы за использование TPL. Псевдокод будет оценен.