4

私は MVC.net を学び始めており、このドキュメントに従っています。

そこでは、非同期コントローラーが 2 つのメソッドを実装することが説明されています。アクションは News と呼ばれ、次にvoid を返すNewsAsyncと呼ばれるメソッドと、 view返す NewsCompleted があり、それは次のようになります。未処理の操作が戻ると呼び出されます。

私の懸念は、操作が開始された後にビューを返すことができない非同期操作のポイントが実際には見られないことです。非同期コールバックが戻るまで、ユーザーがサービスからのフィードバックをまったく見ることができない場合、そもそも非同期コントローラーをわざわざ使う必要はありません。

非同期操作の開始後に中間ビューを返す方法はありますか? この明らかな制限について不必要に心配していますか? MVC.net に欠けているものはありますか?

4

2 に答える 2

3

非同期コントローラーのポイントは、スレッドの再利用を促進することです。これにより、リソースをブロックする特に長時間実行される要求がある場合に、要求キューを拘束することはありません。要求側に情報を返すこととは何の関係もありません。結局のところ、非同期コントローラーと通常のコントローラーの間に違いは見られません。

それはそれをよりajaxにやさしいものにするようなものではありません。良い例は、画像のレンダリングを開始するリクエストがあった場合です。従来、その要求スレッドは、CPUが画像をレンダリングする間に消費されます。非同期パターンを使用すると、引き続き画像をレンダリングできますが、レンダリングが完了するまでそのスレッドを解放して別のWebリクエストを処理できるため、サーバーのスループットが向上します。

于 2012-04-16T18:56:36.153 に答える
0

1つの戦略は、クライアントでポーリングを設定することです。結果が生成されると、ユーザーに通知されます。

于 2012-04-16T18:55:55.020 に答える