と呼ばれる方法に適用されます、私は次のコードを持っても待っています。は、非同期は
この場合、Class.ClassMethod(text)
はawait
で呼び出されます。私が理解する限り、メソッドはもはや非同期ではなく、順番に実行されます。これまでのすべての罰金。
しかしawait
は、例えば実施された後のawait機能は、です。ClassMethod関数内で呼び出されたメソッドに適用されますがfollowingClassMethod
のコードも適用待っているだろうか、私はまたfollowingClassmethod
にawait
を追加する必要があります。
followingClassMethod
につきましては、followingClassMethod
などと呼ばれる方法にも適用されます。もしそうなら、どの時点で適用が止まるでしょうか?
適用されない場合は、ClassMethod
では、コンストラクタとメソッドが同時に実行されることを意味しますか?明らかにうまくいきません。この場合、非同期を使用してコンストラクタを呼び出すことができないため、これを解決するにはどうすればよいですか?メソッドでコンストラクタをラップして非同期にするという答えを見たことがありますが、それはちょっとハッキリしているようですね。
私が見ることができる上記の場合をClassMethodを非同期にする必要はありません。しかし、これを非同期タスクとして使用する必要がある場合は、ClassMethodで待機するように指定する必要があります。それ以外の場合は非同期です。 – Alex
@Alexは、あなたが「async」として何を意味すると思うかによって異なります。本当にここに真に非同期なものがありますか?非同期のコードを書くことを可能にするためにコンパイラの魔法を誘発するだけの非同期の 'async' /' await'を書いているわけではありません。あなたの最終的な質問は:いいえ、 'ClassMethod'が' async'ではなく、 'followingClassMethod'の待ち合わせ可能な性質を正しく通している例を明示しました(* this *が' async'であると仮定して) –
@MarcGravell : '' async'/'await'は' ClassMethod'コードで役に立つと思います。特に、 'NextClass'コンストラクタが(ボーンヘッドではない)例外をスローした場合。 –