C#アプリケーションに複数のプロセッサコアを活用させるために何ができますか?
-
09-10-2019 - |
質問
.NET C#アプリケーションがCPUやメモリなどのリソースを使用する方法について、いくつかのテストを行ってきました。大量の数字の値を計算するループをいくつか書きましたが、アルゴリズムの重みに満足しています。
Quad Core 2.4 GHzプロセッサがありますが、タスクマネージャーでは、アプリケーションがCPUの25%しか使用していないことに気付きました。なぜ100%を使用していないのですか?それは、VS 2008でコンパイルされた.NET C#アプリケーションが単一のコアCPUのみをサポートすることを意味しますか?または、すべてのCPUを使用するように強制する方法はありますか?
解決 4
バックグラウンドワーカーを使用する場合、CPU Quadcore 4CPUがある場合、誰かが例を書くことができますか?
他のヒント
それはすべて、コードを変更して複数のコアを使用する方法に依存します。
並列またはマルチスレッド操作を行っていない限り、プログラムは複数のコアを使用しません。
.NET 4には、あなたを助けることができるライブラリがあります:並列linq。詳細については、このページを参照してください。 http://msdn.microsoft.com/en-us/library/dd997425.aspx
いくつかのスレッドを具体的に開始しない限り、1コアで実行されます。
最も簡単な方法は、メソッドをスレッドプールに押し込むことです。
System.Threading.ThreadPool.QueueUserWorkItem(DoSomething);
void DoSomething() { ... }
使用する .NET 4.0
TaskLibrary
マルチコアプロセッサの恩恵を受けるために設計されています。
所属していません StackOverflow