7

並列タスクを同時に実行できる C# 5.0 の Async および Await キーワードについて読みました。(これは私が理解したものです)。

このプラクティスは Web アプリケーションに役立ちますか?

ここには、UI (ブラウザー) をブロックすることなくタスクを実行できる AJAX メソッドがあります。

非同期 Web サービスにのみ使用する必要がありますか?

Web アプリケーションで async/await キーワードを使用する理由/方法の例を教えてください。(この機能を利用するには)

4

2 に答える 2

4

おそらく、私が思いつく最良の例は、非同期アクション メソッドから一連の Web サービス メソッドを呼び出すことです。例えば:

Web サービスに Method1 と Method2 という 2 つのメソッドが定義されているとします。各メソッドに 1 秒かかる場合、両方を同期的に呼び出すには 2 秒かかりますが、それらを同じ方法で呼び出すと、asyncより短い時間で済みます。

 using (DataClient proxy = new DataClient())
            {
                Task<Object> data1= proxy.Method1();
                Task<Object> data2 = proxy.Method2();

                await Task.WhenAll(new Task[] { data1, data2 });

               //Completed
           }

MSDN から:

AsyncController クラスを使用すると、非同期アクション メソッドを記述できます。長時間実行される CPU バウンドでないリクエストには、非同期アクション メソッドを使用できます。これにより、リクエストの処理中に Web サーバーが作業をブロックするのを回避できます。AsyncController クラスの一般的な用途は、実行時間の長い Web サービス呼び出しです。

リンク: http://msdn.microsoft.com/en-us/library/ee728598(v=VS.98).aspx

于 2013-01-29T08:02:38.663 に答える
3

asyncそれは革新awaitではなく、同じ非同期呼び出し処理パターンの周りの単純な構文糖衣ではありませんが、コーダーにとってより自然な方法でコードを記述できるという違いがあります

したがって、本当の問題は次のとおりです。非同期パターンをどこで使用する必要がありますか?

まあ、async呼び出し、複数の呼び出しの大規模な処理、または重い処理操作が必要なときはいつでも...またはasyncニーズに合わせて宇宙で見つけることができるものなら何でも。

于 2013-01-29T07:50:31.003 に答える