Итак, моя проблема заключается в следующем: у меня есть список элементов для обработки, и я хотел бы обрабатывать элементы параллельно, а затем фиксировать обработанные элементы.
Класс барьера в C# позволит мне сделать это — я могу запускать потоки параллельно для обработки списка элементов, и когда вызывается SignalAndWait и все участники сталкиваются с барьером, я могу зафиксировать обработанные элементы.
Класс Task также позволит мне сделать это — при вызове Task.WaitAll я могу дождаться завершения всех задач и зафиксировать обработанные элементы. Если я правильно понимаю, каждая задача будет выполняться в своем собственном потоке, а не в нескольких параллельных задачах в одном потоке.
- Правильно ли я понимаю оба варианта использования проблемы?
- Есть ли преимущество между одним перед другим?
- Чем гибридное решение лучше (барьер и задачи?).
Barrier
. После прочтения, возможно, вам больше нравится TPL Dataflow? - person MickyD   schedule 17.05.2015