什么不同的任务数组和任务?

时间:2016-06-01 18:32:16

标签: c# asynchronous

给出代码段

var Task1 = DoAsync(0);
var Task2 = DoAsync(1);

await Task.WhenAll(Task1,Task2);

Task[] TaskArray = new Task[2];
TaskArray[0] = DoAsync(0);
TaskArray[1] = DoAsync(1);
await Task.WhenAll(TaskArray);

我可以知道,从我提供的代码中执行任务的方式有何不同?

TaskArray确实会同时运行吗?

1 个答案:

答案 0 :(得分:4)

  

我可以知道,从我提供的代码中执行任务的方式有何不同?

您的两个代码段完全相同。可以调用params方法 - 如果你传递参数,就像在第一个例子中一样,它只是创建一个数组,就像你在第二个例子中所做的那样。

  

TaskArray确实会同时运行吗?

不一定。异步代码不一定是 parallel 并发。我们所知道的是,我们有两个操作可以在以后生成结果。通过在两个不同的处理器上同时运行,或在不同线程上的一个处理器上运行,没有任何要求它们这样做。