3

ネットワークをスキャンするプログラムがあります。これは、ネットワークからデータが返されるのを待つ多くのタスク(および並列foreach)を使用してスキャンします。問題は、これらのタスクがCPU処理をほとんど使用しないことを知っていますが、CLRは使用せず、非常にゆっくりと開始することを要求することです(特に、これは2コアCPUで実行されているため)。

CLRに同時により多くのタスクを開始させるにはどうすればよいですか?現在、プログラムは多くのことを待っていますが、同時により多くの接続を開くにはどうすればよいですか?

4

1 に答える 1

1

新しいスレッドを開始するためにTPLを必要としない非同期IOを使用するか、手動でスレッドを開始するか、またはを使用できますThreadPool.SetMinThreads。ただし、これはプロセス全体の設定であるため、最後のソリューションは使用しないでください。ローカルの問題に対してグローバルな解決策を選択しないでください。

于 2012-08-23T20:15:49.680 に答える