【发布时间】:2019-12-24 18:27:07
【问题描述】:
我有以下代码:
//Await #1
var response1 = await doSomething();
if(response1.isSuccess) {
//Await #2
var response2 = await doSomethingElse();
}
响应 1 和响应 2 完全独立,我想在这里并行化等待任务。 基本上响应 2 需要很多时间,因此只有在 response1 成功时才会调用。 有什么方法可以调用这两个任务并查看响应 1 的结果,如果失败,我会丢弃/跳过 Await#2 的响应。
【问题讨论】:
-
你当前的代码没问题,只有在doSomething成功时才会调用doSomethingElse
-
您的意思是要一起启动它们,但是如果响应 1 先完成,并且没有成功,您要取消响应 2?
-
你可以使用任务工厂启动新任务,最后等待这两个任务。
-
@Sweeper,是的,这就是我正在尝试的。这可以实现吗?
-
我认为你使用ContinueWith
Task<string> t = Task.Run(() => doA()); t.ContinueWith((t1) => { doB(); });
标签: c#