我是TPL库的新手,有一个简单的问题,我没有找到答案。
像这样调用TPL块有什么区别(如果有的话):
foreach (var t in paramsLisr)
{
someBlock.Post(t);
}
与
foreach (var t in paramsLisr)
{
Task.run(()={someBlock.Post(t)});
}
你的第二个例子是完全多余的,几乎是错误的。启动任务以发布到操作块是没有意义的。
ActionBlock
和类似情况下,使用内部缓冲区并将无缝使用消息(除非您设置了BoundedCapacity
)。即使您设置了BoundedCapacity
使用Task
发布也是错误的方法,您可能应该使用另一个块来缓冲消息