Если я хочу получать сообщения из внешней очереди, скажем, в Redis
или подобном. Не лучше ли, чтобы один поток постоянно проверял очередь и отправлял сообщения в соответствующий BroadcastBlock
для обработки (например)
if (message.type == "person")
personBroadcast.post(message);
else
monsterBroadcast.post(message);
Которые затем будут транслироваться в конвейеры для обработки, или лучше иметь, скажем, 4 Tasks
, которые все берут сообщения из очереди и обрабатывают их сами?
Во-первых, будут ли блоки TPL DataFlow
обрабатываться параллельно, или они все равно должны быть в отдельных задачах? Я пытаюсь решить, какой подход будет наилучшим образом использовать ресурсы. Совет ценится.