Voglio duplicare la piegatura (usa cicli CPU extra)
-
23-09-2019 - |
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?
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;
.