【发布时间】:2017-02-28 01:49:31
【问题描述】:
我已经阅读了 2 个小时,但我仍然感到困惑。有人说使用 StartNew,有人说 Task.Run,有人说别的。我知道 Task.Run 给了我一个编译错误。
我需要并行启动多个任务,然后在每个任务成功完成后执行后续任务。知道何时完成所有阻塞会很有帮助。
这是我所拥有的:
public void DoSomeWork(object workItem)
{
var tasks = new Task<ResultArgs>[_itemList.Count];
for (int loopCnt = 0; loopCnt < _itemList.Count; loopCnt++)
{
tasks[loopCnt] = new Task<ResultArgs>.Run(() =>
{
return _itemList[loopCnt].Analyze(workItem);
});
tasks[loopCnt].ContinueWith(ReportResults, TaskContinuationOptions.ExecuteSynchronously);
}
}
编译显示任务中不存在Run。
显然,我有一些东西在运行,但我不知道是什么。
我该如何解决这个问题?
【问题讨论】:
-
Task.Run仅存在于 4.5 中,不存在于 4.0 中。
标签: c# c#-4.0 task-parallel-library