Что я могу сделать, чтобы мое приложение C# воспользовалось несколькими процессорами?
-
09-10-2019 - |
Вопрос
Я делаю некоторые тесты о том, как приложение .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
который предназначен для получения выгоды от многоядерных процессоров.