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.

¿Fue útil?

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;

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top