Geo*_*uer 3 .net c# task-parallel-library async-await
假设我有两个异步函数
Result1 result1 = await getResult1();
Result2 result2 = await getResult2();
doSomething(result1, result2);
Run Code Online (Sandbox Code Playgroud)
理想情况下,我希望编译器分析我的方法看到它getResult2()不依赖于结果,getResult1()并将其编译为调度两个同时运行的代码,在继续之前等待两者的结果.
问题1:那会发生什么?
问题2:如果没有,我如何做到这一点,假设Result1并且Result2没有共享基类型,因此我无法使用Task.WhenAll()
这是怎么回事?
号 await只是意味着,或多或少,"不继续执行代码,直到下面的任务已经完成".
我该如何做到这一点
首先启动两个任务,然后等待它们完成:
var firstTask = getResult1();
var secondTask = getResult2();
await Task.WhenAll(firstTask, secondTask);
doSomething(firstTask.Result, secondTask.Result);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |