Я хочу дублировать складывание (используйте дополнительные циклы процессора)
-
23-09-2019 - |
Вопрос
Я хочу использовать циклы дополнительных CPU, чтобы сделать часть моей собственной обработки, и мне было интересно, сможет ли кто-нибудь указать мне правильное направление относительно того, как начать с этого?
Решение
Я бы предложил написать программу, которая работает непрерывно (убедитесь, что она иногда блокирует), а затем просто установить ее на низкий приоритет. Планировщик ОС (Windows/*NIX) должен автоматически обрабатывать остальные.
Другие советы
Вы можете использовать дополнительные циклы процессора, написав программу, которая работает в фоновом режиме.
Вы можете проверить использование процессора, чтобы узнать, когда компьютер простаивает (но это не обязательно хорошая идея), или вы можете прослушать деятельность мыши/клавиатуры.
Чтобы проверить использование процессора в C#, используйте следующий код:
float cpuUsage; //Between 0 and 100
using (var cpu = new PerformanceCounter("Processor", "% Processor Time", "_Total")) {
cpu.NextValue(); //First call gives wrong values
cpuUsage = cpu.NextValue();
}
Чтобы проверить активность клавиатуры или мыши, вам нужно использовать клавиатуру / крюк для мыши; видеть здесь для инструкций.
Чтобы инициализировать FlainWorker, вы должны включить отчеты о прогрессе и подключить обработчики вашего события:
// Enable progress reporting
backgroundWorker1.WorkerReportsProgress = true;
// Hook up event handlers
backgroundWorker1.DoWork += backgroundWorker1_DoWork;
backgroundWorker1.RunWorkerCompleted += backgroundWorker1_RunWorkerCompleted;
backgroundWorker1.ProgressChanged += backgroundWorker1_ProgressChanged;
.