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このメソッドは、/ifが未完了を返す場合にのみ「一時停止」しますTask

私のasync/awaitイントロの投稿が役立つかもしれません。

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

最初の待機が制御を生成するまで同期的に実行されます。あなたはそれを正しくやっています。最後の例は、同期的に実行されるものに関して、前の例とまったく同じです。

于 2012-08-20T11:07:22.337 に答える