Этот вопрос говорит о том, как традиционный шаблон очереди несколько устарел в современном C# из-за TPL: Лучший способ. NET для управления очередью задач в отдельном (одном) потоке
Принятый ответ предлагает то, что кажется решением без сохранения состояния. Это очень элегантно, но, возможно, я динозавр или неправильно понимаю ответ ... Что, если я хочу приостановить очередь или сохранить ее состояние? Что если при постановке в очередь задачи поведение должно зависеть от состояния очереди или если задачи в очереди могут иметь разные приоритеты?
Как можно эффективно реализовать упорядоченную очередь задач - которая на самом деле имеет явный объект Queue
, который Вы можете проверять и даже взаимодействовать с парадигмой Task
? Поддержка одиночной / параллельной обработки поставленных в очередь задач является преимуществом, но для моих целей единый параллелизм приемлем, если возникают проблемы. Я не имею дело с миллионами задач в секунду, на самом деле мои задачи, как правило, большие / медленные.
Я рад признать, что существуют решения с различной масштабируемостью в зависимости от требований, и что мы часто можем найти компромисс между масштабируемостью и усилием / сложностью кодирования.