【发布时间】:2013-07-06 14:45:09
【问题描述】:
我正在试验新的 async 和 await 关键字。我生成了以下异步函数:
private async static Task<string> GetStringAsync(string pageAddress)
{
HttpClient client = new HttpClient();
return client.GetStringAsync(pageAddress);
}
我知道我正在返回 Task<String> 并且可以等待其他方法的结果。这种方法效果很好。我的问题是当我将上述函数的第二行替换为以下内容时会发生什么(实际上是在幕后)(注意 await 关键字的引入):
return await client.GetStringAsync(pageAddress);
函数的行为方式完全相同!请记住,该函数返回 Task<string> 而不是 string。 await 这里的关键字是不是退化了?编译器是否只是从我的代码中删除它?
【问题讨论】:
-
你确定第一个版本可以编译吗?
标签: c# asynchronous async-await