Domanda

Voglio usare cicli extra-CPU per fare un po 'di elaborazione e mi chiedevo se qualcuno potesse indicarmi nella giusta direzione su come iniziare su questo?

È stato utile?

Soluzione

Suggerirei di scrivere un programma che funziona continuamente (assicurati che blocchi occasionalmente) e quindi semplicemente metterlo a bassa priorità. Il sistema operativo del sistema operativo (Windows/*Nix) dovrebbe gestire automaticamente il resto.

Altri suggerimenti

È possibile utilizzare cicli di CPU extra scrivendo un programma che funziona in background.

Puoi controllare l'utilizzo della CPU per scoprire quando il computer è inattivo (ma non è necessariamente una buona idea) o puoi ascoltare l'attività del mouse/tastiera.

Per controllare l'utilizzo della CPU in C#, utilizzare il seguente codice:

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();
}

Per verificare l'attività della tastiera o del mouse, è necessario utilizzare un gancio da tastiera / mouse; vedere qui per istruzioni.

Per inizializzare ilWorkworker, è necessario abilitare il reporting di avanzamento e collegarsi ai gestori degli eventi:

// Enable progress reporting
backgroundWorker1.WorkerReportsProgress = true;

// Hook up event handlers
backgroundWorker1.DoWork += backgroundWorker1_DoWork;
backgroundWorker1.RunWorkerCompleted += backgroundWorker1_RunWorkerCompleted;
backgroundWorker1.ProgressChanged += backgroundWorker1_ProgressChanged;
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top