私のコードでParallel.ForEachとPLINQを使用するほど、多くの顔とコードレビューのプッシュバックが得られます。だから私はPLINQを極端に、各LINQステートメントで使用しないように私に理由があるのだろうか?ランタイムは、アプリのパフォーマンスが向上するのではなく実際に低下するほど多くのスレッドを生成する(またはスレッドプールから多くのスレッドを消費する)ようにスマートにできないことがありますか? Parallelライブラリにも同じ質問が当てはまります。.NET 4 Parallel.ForEachとPLINQ:スレッドプールを圧倒してアプリのパフォーマンスを低下させることはできますか?
マルチスレッドを使用するスレッドの安全性とオーバーヘッドに関係することを理解しています。私はまた、すべてが並列化するのに良いとは思いません。私のアプローチを守り、これらの2つの素晴らしいことをあきらめるべきかどうかについて私は疑問に思っています。私の同僚は.NETの機能に頼るのではなくスレッドの制御を自分自身で行うほうがいいと思うからです。
更新:ハードウェアがマルチスレッドの使用に関する前提条件を満たすほど十分に良いと仮定してください。
私はあなたが手作業で設定しない限り、plinqはあなたが持っているコアの数に基づいていくつかのスレッドしか使用しないと信じています –
@LukeMcGregor:デフォルトとは何ですか? – Schultz9999