await放置的位置问题

来源:10-2 【理解】C#的异步async await

Sea_Man

2020-07-21

为什么await放在了longRunningTask之前而不是产生它的函数LongRunningOperationAsync之前?

写回答

1回答

阿莱克斯刘

2020-07-21

问题非常好!

请对比下面代码你就明白了:

  1. Task<int> longRunningTask = LongRunningOpAsync();
    int result = await longRunningTask;
  2. int result = await LongRunningOpAsync();


以上两句话是等效的,第一个方式是让longRuningOpAsync等于一个异步操作(此时类型为Task<T>),然后再await执行异步操作,输出int类型数据result;而第二种方式是直接await异步执行LongRunningOpAsync,直接输出int类型数据result。


我这么说能讲清楚了吗?

0
4
Sea_Man
非常感谢!
2020-07-22
共4条回复

.Net 开发电商后端API 从0到精通RESTful

. Net 实战+RESTful思想纵深课程,开发优雅RESTful风格API。

977 学习 · 547 问题

查看课程