WP8等待和异步问题

本文关键字:问题 异步 等待 WP8 | 更新日期: 2023-09-27 18:27:03

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

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

我现在使用序列方法来执行操作,它需要非常慢的

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

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

谢谢你的帮助。

WP8等待和异步问题

await Task.WhenAll(new Task[]{Task A, Task B, Task C})
await Task D

您可以分配任务来完成必要的工作,但不能在任务开始时等待。

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

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

在这一点上,他们都是从后台开始的,直到后来我们才等待他们完成:

await taskA;
await taskB;
await taskC;

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

await D();

使用Thread怎么样?

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();