我可以做些什么来使我的C#应用​​程序利用多个处理器内核?

时间:2011-01-11 12:05:17

标签: c# .net performance cpu-usage multiprocessor

我一直在测试.NET C#应用程序使用资源(如CPU或内存)的方式。我写了一些循环来计算大量数字的值,我对算法的权重感到满意。

我有一个四核2.4 GHz处理器,但我注意到在任务管理器中,我的应用程序只使用了25%的CPU。为什么不使用100%?这是否意味着在VS 2008中编译的.NET C#应用程序仅支持单核CPU?或者有没有办法可以强迫它使用所有的CPU?

4 个答案:

答案 0 :(得分:5)

这完全取决于您如何修改代码以使用多个核心。

除非您正在进行并行或多线程操作,否则该程序不会使用多个核心。

.NET 4有一个可以帮助您的库:并行LINQ。有关详细信息,请参阅此页:http://msdn.microsoft.com/en-us/library/dd997425.aspx

答案 1 :(得分:2)

除非你专门开始一些线程,否则它将以1核运行。

最简单的方法是将方法推送到ThreadPool。

   System.Threading.ThreadPool.QueueUserWorkItem(DoSomething);

   void DoSomething() { ... }

答案 2 :(得分:2)

使用旨在从多核处理器中受益的.NET 4.0 TaskLibrary

答案 3 :(得分:1)

如果我使用背景工作者怎么样,如果我有CPU四核4 CPU可以有人写一个例子它怎么能对那个CPU做出反应?