6

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

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

4

4 回答 4

5

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

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

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

于 2011-01-11T12:15:00.623 回答
2

除非您专门启动一些线程,否则它将以 1 个核心运行。

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

   System.Threading.ThreadPool.QueueUserWorkItem(DoSomething);

   void DoSomething() { ... }
于 2011-01-11T12:14:16.847 回答
2

.NET 4.0 TaskLibrary专为受益于多核处理器而设计的用途。

于 2011-01-11T12:16:55.507 回答
1

如果我使用Background-workers,如果我有CPU QuadCore 4CPU,有人可以写一个例子,它会如何反应@那个CPU?

于 2011-01-11T13:19:56.577 回答