Microsoft のドキュメントから引用:
デフォルトでは、スレッド プールには、使用可能なプロセッサごとに 250 のワーカー スレッドがあります。この設定は、ThreadPool.SetMaxThreads メソッドを使用して変更できます。
また、広く知られているように、オーバーヘッドがあるとも言われています。
スレッドには、ある程度のオーバーヘッドがあります。したがって、コンピューターに複数のプロセッサがあり、処理を 2 つのスレッドに分割しても、パフォーマンスが 100% 向上することはありません。
いくつかの経験と推測から、私は250ではなく、CPU あたり1 から 4のスレッドのようなものを持っていたでしょう! 誰かがなぜ250か知っていますか?それは最高の全体的なパフォーマンスを提供するはずの値ですか、それとも他のタスクが完了するのを待たずにそのスレッドプールに与えるほとんどすべてのタスクを処理するためですか?