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

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

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

4 ответа

Решение

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

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

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

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

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

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

Самый простой способ - вставить метод в ThreadPool.

   System.Threading.ThreadPool.QueueUserWorkItem(DoSomething);

   void DoSomething() { ... }
Другие вопросы по тегам