如果我有异步方法:
public async Task MyMethodAsync()
{
// [.. Some synchronous code here ..]
await AnotherAsyncMethod();
}
在我的代码中的某个时刻,我称之为:
await MyMethodAsync();
此语句是否会在没有输入MyMehodAsync的情况下立即返回给调用者?我想是的但不确定。
如果我希望调用MyMethodAsync
立即首先执行[.. Some synchronous code here ..]
部分,我应该这样做:
var t = MyMethodAsync();
await t;
由于
答案 0 :(得分:5)
代码调用时
await MyMethodAsync();
然后执行将输入MyMethodAsync
(同步)。当/ MyMethodAsync
返回未完成的Task
时,该方法仅“暂停”。
您可以找到我的async
/await
intro post helpful。
答案 1 :(得分:3)
[.. Some synchronous code here ..]
将同步执行,直到第一个await产生控制。你说得对。您的最后一个示例与之前的示例完全相同,即同步执行的内容。