Запись метода обработки, удаление элемента из очереди, обработка его, следующий элемент и т. Д.
Это не достаточно быстро, потому что иногда обработке приходится ждать сетевой ввод / вывод.
Синхронно, это await ProcessThisMessage(message)
.
Если я вместо этого изменю его на ProcessThisMessage(message)
(то есть async Task
) (запустить и забыть), каково поведение, если множество этих компонентов складывается?
Ограничено ли оно памятью и процессором машины? Или существует жесткое ограничение, такое как максимальный размер пула потоков?
В принципе, мне интересно, позаботится ли C# о себе, естественным образом ограничив и просто блокировав, когда достигнут максимум, или если я нужно что-то делать вручную, если они накапливаются и достигают предела.