Quiero duplicar el plegado (usar ciclos de CPU adicionales)
-
23-09-2019 - |
Pregunta
Quiero usar ciclos extra-CPU para hacer algunos de mi propio procesamiento, y me preguntaba si alguien podría señalarme en la dirección correcta sobre cómo comenzar con esto.
Solución
Sugeriría escribir un programa que se ejecute continuamente (asegúrese de que bloquee ocasionalmente), y luego simplemente establecerlo a baja prioridad. El programador del sistema operativo (Windows/*nix) debe manejar el resto automáticamente.
Otros consejos
Puede usar ciclos de CPU adicionales escribiendo un programa que se ejecuta en segundo plano.
Puede verificar el uso de la CPU para averiguar cuándo la computadora está inactiva (pero no es necesariamente una buena idea), o puede escuchar la actividad del mouse/teclado.
Para verificar el uso de la CPU en C#, use el siguiente código:
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();
}
Para verificar la actividad del teclado o el mouse, deberá usar un gancho de teclado / mouse; ver aquí para instrucciones.
Para inicializar el trabajador de fondo, debe habilitar el informe de progreso y activar sus manipuladores de eventos:
// Enable progress reporting
backgroundWorker1.WorkerReportsProgress = true;
// Hook up event handlers
backgroundWorker1.DoWork += backgroundWorker1_DoWork;
backgroundWorker1.RunWorkerCompleted += backgroundWorker1_RunWorkerCompleted;
backgroundWorker1.ProgressChanged += backgroundWorker1_ProgressChanged;