等待并返回呼叫者

dar*_*key 3 c# async-await

如果我有一个异步方法:

public async Task MyMethodAsync()
{
   // [.. Some synchronous code here ..]

   await AnotherAsyncMethod();
}
Run Code Online (Sandbox Code Playgroud)

在我的代码中的某些时候,我称之为:

await MyMethodAsync();
Run Code Online (Sandbox Code Playgroud)

即使输入MyMehodAsync,此语句是否会立即返回给调用者?我想是的但不确定.

如果我希望调用MyMethodAsync首先[.. Some synchronous code here ..]立即执行该部分,我应该更喜欢:

var t = MyMethodAsync(); 
await t;                 
Run Code Online (Sandbox Code Playgroud)

谢谢

Ste*_*ary 5

当您的代码调用时

await MyMethodAsync();
Run Code Online (Sandbox Code Playgroud)

然后执行进入MyMethodAsync(同步).当/ if MyMethodAsync返回未完成时,该方法仅"暂停" Task.

您可能会发现我的async/ await介绍帖子很有帮助.