等待并返回呼叫者

时间:2012-08-20 10:09:33

标签: c# async-await

如果我有异步方法:

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

   await AnotherAsyncMethod();
}

在我的代码中的某个时刻,我称之为:

await MyMethodAsync();

此语句是否会在没有输入MyMehodAsync的情况下立即返回给调用者?我想是的但不确定。

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

var t = MyMethodAsync(); 
await t;                 

由于

2 个答案:

答案 0 :(得分:5)

代码调用时

await MyMethodAsync();

然后执行输入MyMethodAsync(同步)。当/ MyMethodAsync返回未完成的Task时,该方法仅“暂停”。

您可以找到我的async/await intro post helpful

答案 1 :(得分:3)

[.. Some synchronous code here ..] 

将同步执行,直到第一个await产生控制。你说得对。您的最后一个示例与之前的示例完全相同,即同步执行的内容。