Что я могу сделать, чтобы мое приложение c# использовало несколько процессорных ядер?

Я делал некоторые тесты о том, как приложение .NET C# использует ресурсы, такие как CPU или память. Я написал несколько циклов, которые вычисляют значения для большого количества чисел, и я доволен весом алгоритма.

У меня четырехъядерный процессор 2,4 ГГц, но я заметил, что в Диспетчере задач мое приложение использует только 25% моего процессора. Почему он не использует 100%? Означает ли это, что приложение .NET C#, скомпилированное в VS 2008, поддерживает только одноядерный процессор? Или есть способ заставить его использовать все процессоры?

4 ответов


все зависит от того, как вы можете изменить свой код, чтобы использовать более одного ядра.

Если вы не выполняете параллельные или многопоточные операции, программа не будет использовать более одного ядра.

.NET 4 имеет библиотеку, которая может вам помочь: Parallel LINQ. Для получения дополнительной информации см. эту страницу:http://msdn.microsoft.com/en-us/library/dd997425.aspx


Он будет работать на 1 ядре, если вы специально не начнете некоторую резьбу.

самый простой способ-нажать метод на ThreadPool.

   System.Threading.ThreadPool.QueueUserWorkItem(DoSomething);

   void DoSomething() { ... }

использовать .NET 4.0 TaskLibrary которое конструировано для извлекать пользу из многоядерных процессоров.


Как насчет того ,если я использую фоновых рабочих, если у меня есть процессор QuadCore 4CPU, может ли кто-нибудь написать пример, как он может реагировать на этот процессор ?