我们有一个在后台运行任务列表的网络服务功能。完成所有任务后,它会返回。我重新审视了 C# 5 的函数。我设法使以下代码段正常工作:
var result = new List<int>();
var tasks = new List<Task<int>>();
foreach (var row in rowlist)
tasks.Add(Task.Factory.StartNew(() => DoWork(row)));
foreach (var task in tasks)
result.Add(task.Result);
task.Result
等待单个任务完成。我已经通过向该DoWork
方法添加 3 秒延迟并验证它是否在 5 秒内完成,对 10 个任务的列表进行了测试。
现在我尝试使用新async / await
语法重写函数。但我似乎无法让它工作。如果它编译,它会同步运行,通过添加等待来验证。
关于如何使用重写上述代码段的任何想法async / await
?