C# WP8等待和异步问题

C# WP8等待和异步问题,c#,asynchronous,windows-phone-8,async-await,C#,Asynchronous,Windows Phone 8,Async Await,在我的编码中,我有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 谢谢你的帮助 您可以将任务分配给他们做必要的工作,但不能等待他们开始这样做 await Task.WhenAll(n

在我的编码中,我有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


谢谢你的帮助

您可以将任务分配给他们做必要的工作,但不能等待他们开始这样做

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

您可以将任务分配给执行必要的工作,但不能等待他们开始执行

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

var taskA = A();
var taskB = B();
var taskC = C();
在这一点上,他们都是在后台开始的,直到后来我们才等待他们完成:

await taskA;
await taskB;
await taskC;
完成A、B、C后,运行并等待其完成D:

await D();

使用线程怎么样

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();
List tmpThread=newlist();
添加(新线程(新线程开始(A));
添加(新线程(新线程开始(B));
添加(新线程(新线程开始(C));
添加(新线程(新线程开始(D));
tmpThread[0].Start();
tmpThread[1].Start();
tmpThread[2]。Start();
tmpThread[3]。Start();

使用线程怎么样

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();
List tmpThread=newlist();
添加(新线程(新线程开始(A));
添加(新线程(新线程开始(B));
添加(新线程(新线程开始(C));
添加(新线程(新线程开始(D));
tmpThread[0].Start();
tmpThread[1].Start();
tmpThread[2]。Start();
tmpThread[3]。Start();

那么您就不能正确创建/启动任务。发布一些真实代码那么您就不能正确创建/启动任务。发布一些真实代码Go与任务A、B和C并行,并在一个异步方法中调用它们,然后等待该方法,然后调用任务Dgo与任务A、B和C并行,并在一个异步方法中调用它们,然后等待该方法e调用任务D