3

如果我有一个异步方法:

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

   await AnotherAsyncMethod();
}

在我的代码中的某个时刻,我这样称呼它:

await MyMethodAsync();

此语句是否会立即返回调用方,甚至无需输入 MyMehodAsync ?我猜是这样,但不确定。

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

var t = MyMethodAsync(); 
await t;                 

谢谢

4

2 回答 2

5

当您的代码调用时

await MyMethodAsync();

然后执行进入MyMethodAsync(同步)。该方法仅在/如果MyMethodAsync返回 uncompleted时“暂停” Task

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

于 2012-08-20T12:25:49.417 回答
3
[.. Some synchronous code here ..] 

将同步执行,直到第一个 await 产生控制。你做对了。就同​​步执行的内容而言,您的最后一个示例与您之前的示例完全相同。

于 2012-08-20T11:07:22.337 回答