执行任务的不同方式

时间:2017-05-30 19:02:31

标签: c#

有人可以解释下面两段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);

我们将不胜感激。

1 个答案:

答案 0 :(得分:1)

第一个将四个方法执行排队到线程池,然后异步等待它们全部完成。

第二个在当前线程上启动四个方法执行,然后异步等待它们全部完成。