如何在循环中创建任务并等待所有任务完成

时间:2016-05-08 15:12:44

标签: c# .net multithreading async-await task

.Value2
  

如何在循环中创建新任务以及如何等待所有任务完成   执行下一行代码

1 个答案:

答案 0 :(得分:6)

你应该尝试使用任务组合器WhenAll:

public async Task BackupFileAsync()
{
    var uploadTasks = new List<Task>();
    for (var i = 0; i < partCount; i++)
    {
        var uploadTask = Task.Run(() => upload(FilePart));
        uploadTasks.Add(uploadTask)
    }

    await Task.WhenAll(uploadTasks);

    Console.WriteLine("Upload Successful");
}