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

StackOverflow https://stackoverflow.com/questions/4657410

Вопрос

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

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

Это было полезно?

Решение 4

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

Другие советы

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

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

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

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

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

   System.Threading.ThreadPool.QueueUserWorkItem(DoSomething);

   void DoSomething() { ... }

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top