0

在我的编码中,我有 4 个任务。任务 A 任务 B 任务 C 任务 D

任务D需要在任务A完成后执行,B&C任务A、任务B、任务C是独立的,可以同时执行

我现在正在使用顺序方法来执行操作,它需要很慢

await Task A;
await Task B;
await Task C;
await Task D;

我想知道我是否可以让它同时运行,完成任务 A、B、C 后,它将运行任务 D

谢谢你的帮助 。

4

3 回答 3

3
await Task.WhenAll(new Task[]{Task A, Task B, Task C})
await Task D
于 2013-08-09T08:37:38.677 回答
1

您可以分配任务以完成必要的工作,但不要等待他们开始执行此操作。

创建一个变量并将其分配给返回的任务:

var taskA = A();
var taskB = B();
var taskC = C();

此时,它们都在后台开始,然后我们等待它们完成:

await taskA;
await taskB;
await taskC;

并在完成 A, B, C 之后,运行并等待它完成 D :

await D();
于 2013-08-09T09:46:32.730 回答
0

使用线程怎么样?

List<Thread> tmpThread = new List<Thread>();
tmpThread.Add(new Thread(new ThreadStart(A));
tmpThread.Add(new Thread(new ThreadStart(B));
tmpThread.Add(new Thread(new ThreadStart(C));
tmpThread.Add(new Thread(new ThreadStart(D));

tmpThread[0].Start();
tmpThread[1].Start();
tmpThread[2].Start();
tmpThread[3].Start();
于 2013-12-26T12:36:16.020 回答