C# await标识符的问题

QQ图片20191017103626.png

为什么await创建的异步可以用int类型的变量直接接收??
而如果没有用await创建,
Task<int> i=Task.Run(()=>1);

必须用Task<int>接收????

阅读 1.6k
1 个回答
Task<T> task;

T ret = task.GetAwaiter().GetResult();
T ret = await task;

两者等效,await 相当于语法糖,你就这么理解吧。

(语法上等效,但其实背后的机制不一样,但从你提的问题来看说多了你更懵逼,以后用的多了可以看看 async/await 的 IL 原理)