【发布时间】:2013-11-05 06:06:10
【问题描述】:
假设我有两个异步函数
Result1 result1 = await getResult1();
Result2 result2 = await getResult2();
doSomething(result1, result2);
理想情况下,我希望编译器分析我的方法,发现getResult2() 不依赖于getResult1() 的结果,并将其编译为安排两者同时运行的代码,等待两者的结果再继续。
问题 1:会发生这种情况吗?
问题 2:如果不是,我该如何实现,假设 Result1 和 Result2 不共享基本类型,因此我不能使用 Task.WhenAll()
【问题讨论】:
-
在 .NET 中“不共享基本类型”是非常不寻常的。您是否返回指针类型?
-
@BenVoigt 我的意思不是
object...我当然可以装箱和拆箱,但这似乎不是惯用的方式 -
async-await是关于异步而不是并行。
标签: c# .net task-parallel-library async-await