有人可以解释下面两段C#代码之间的区别吗?
var tasks = new List<Task<CustomTaskResult>>();
tasks.Add(Task.Run(() => AsyncMethod1());
tasks.Add(Task.Run(() => AsyncMethod2());
tasks.Add(Task.Run(() => AsyncMethod3());
tasks.Add(Task.Run(() => AsyncMethod4());
await Task.WhenAll(tasks);
和
var tasks = new List<Task<CustomTaskResult>>();
tasks.Add(AsyncMethod1());
tasks.Add(AsyncMethod2());
tasks.Add(AsyncMethod3());
tasks.Add(AsyncMethod4());
await Task.WhenAll(tasks);
我们将不胜感激。
答案 0 :(得分:1)
第一个将四个方法执行排队到线程池,然后异步等待它们全部完成。
第二个在当前线程上启动四个方法执行,然后异步等待它们全部完成。