2

同僚が、ASP.NET Web Api でアップロードされたファイルを処理しているコードをいくつか見せてくれました。それは次のようなものでした:

    Task<IEnumerable<HttpContent>> task = Request.Content.ReadAsMultipartAsync(provider);

    return task.ContinueWith<HttpResponseMessage>(contents =>
    {
        //Do stuff...
    }

ファイルを非同期で読み取る利点は何ですか?

4

3 に答える 3

4

ネットワーク ソケットからのファイルの読み取りは、I/O バウンド操作です。非同期で実行すると、この読み取り中にサーバー上のワーカー スレッドが危険にさらされることはなくなりますが、I/O 完了ポートを利用できます。

于 2012-09-21T20:49:40.960 に答える
3

非同期を使用して、リクエストを処理するスレッドを解放することがすべてです。これを行うと、スレッドは別のリクエストを処理できるようになります。

また、使用しない方がよい理由ContinueWithを説明しています。

于 2012-09-21T15:13:32.840 に答える
1

同期 IO は時間がかかり、(ネットではなく) ディスクから離れている場合でも、コードがハングアップします。非同期 IO に切り替えると、フレームワークがクラ​​イアント コードをブロックすることなく IO 要求を処理できるようになるため、これが軽減されます。

于 2012-09-21T00:46:25.600 に答える