Разместите элемент в блоке действий TPL с помощью Task.run и без - PullRequest
0 голосов
/ 15 января 2019

Я новичок в библиотеке TPL и у меня простой вопрос, на который я не нашел ответа.

какая разница (если есть вообще) между вызовом блока TPL, подобного этому:

foreach (var t in paramsLisr)
{
  someBlock.Post(t);
}

против

foreach (var t in paramsLisr)
{
 Task.run(()={someBlock.Post(t)});                        
}

1 Ответ

0 голосов
/ 15 января 2019

Ваш второй пример полностью избыточен и граничит с неправильным. Нет смысла начинать задачу для публикации в блоке действий.

ActionBlock и т. Д. Используйте внутренний буфер и будут беспрепятственно потреблять сообщения (если вы не установили BoundedCapacity). Даже если вы установили BoundedCapacity, используя Task для публикации, это будет неправильный подход, и вам, вероятно, следует использовать другой блок для буферизации сообщений

...