C#でどのように非同期動作が待っているのか理解しようとしています。私はawaitキーワードを使用するどのメソッドも非同期でマークする必要があることを理解しています。 キーワードがawaitの行がヒットした場合、その行の下のコードは実行されません。非同期操作が開始され、待機中の行のステートメントを実行し、実行を続行できる呼び出しメソッドに制御が戻されます。どのようにC#で非同期動作を待つのですか
質問#1:この仮定は正しいのですか、awaitキーワード以下のコードがまだ実行されていますか?
第2に、非同期のサービスメソッドを呼び出し、その結果を返す必要があるとします。 return文はawaitキーワードの下にあります。
質問#2:非同期呼び出しが完了した後、またはその前にreturnステートメントがヒットするのはいつですか?
質問#3:そのサービスコールの結果を使用したいと思います。非同期操作は役に立たないので、結果が返されたときに呼び出しメソッドがヒットするようにしてください。これは、呼び出しsynchronusを行うResultプロパティを使用して行うことができることを理解します。しかし、DB操作で非同期を使用すると、実際にはほとんどのアプリケーションで時間の80%を占めることになります。
質問#4:DB操作で非同期を使用するにはどうすればよいですか?それは可能であり、推薦されていますか?
質問#5:scenraioが非同期操作を便利にするのは、すべてのAPIが理由なく非同期操作を行っているようです。または私は非同期操作を使用するポイントを逃したのですか?
私は、理由がなくてもメソッドが何かを返さなければならないので、APIのasynメソッドを作っていると言っていることを意味し、その計算が行われるまでどのように彼らは本当にそれを意味する結果が返されるまで役に立たないでしょうか?
あなたはかなりの質問をしています。 1つの集中的な質問をするのが最も効果的です。複数の質問がある場合は、別々に投稿してください。 – svick
@svick何とか混乱した初心者のための非常に丁寧なコメントではありません。とにかく彼は5つのことを尋ねますが、実際には、非同期/非同期の意味と有用性を重視しています。 –
@Svick私はそれを見る方法をMDSNはさらに混乱させ、私の心の中に多くの質問を残しました。他の誰かが同じ問題を抱えているなら、おそらく彼らはこのスレッドを見ることができ、非同期操作をより良く理解することができます。私のすべての質問は1つのトピックに関連しています。私には5つの異なる質問を投稿し、誰かがそれらのすべてを見ることを願っていません... –