1

ASP.NET アプリケーションで PLINQ を使用して、I/O バウンドおよび計算バウンド処理のスループットを向上させることを検討しています (たとえば、コレクションを反復して Web サービス呼び出しに使用し、地理座標距離を計算します)。

私の質問は、次のような操作を実行するParallel.ForEachと、他のリクエストの処理からスレッドが奪われることを心配する必要がありますか、それともスレッドの別のプールを使用するのでしょうか (I/O 完了ポートと呼ばれるものについて聞いたことがありますが、それがどのように機能するかはわかりません)議論に入る)?

4

1 に答える 1

1

Parallel.ForEachせいぜい、あなたが持っているのと同じ数のコアに対して1つのスレッドを使用します。スレッド プールのデフォルトの最大サイズは、使用しているコア数の 250 倍です。したがって、使用可能なスレッドを使い果たすように実際に努力する必要があります。

于 2012-09-24T14:45:46.967 に答える