Je veux dupliquer le pliage (utilisez des cycles de processeur supplémentaires)
-
23-09-2019 - |
Question
Je veux utiliser des cycles extra-CPU pour faire une partie de mon propre traitement, et je me demandais si quelqu'un pouvait me diriger dans la bonne direction sur la façon de commencer à ce sujet?
La solution
Je suggère d'écrire un programme qui s'exécute en continu (assurez-vous qu'il bloque de temps en temps), puis de le définir simplement à une priorité faible. Le planificateur de système d'exploitation (Windows / * Nix) doit gérer automatiquement le reste.
Autres conseils
Vous pouvez utiliser des cycles CPU supplémentaires en écrivant un programme qui s'exécute en arrière-plan.
Vous pouvez vérifier l'utilisation du processeur pour savoir quand l'ordinateur est inactif (mais ce n'est pas nécessairement une bonne idée), ou vous pouvez écouter l'activité de souris / clavier.
Pour vérifier l'utilisation du processeur en C #, utilisez le code suivant:
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();
}
Pour vérifier l'activité du clavier ou de la souris, vous devrez utiliser un clavier / crochet de souris; voir ici pour les instructions.
Pour initialiser le travail d'arrière-plan, vous devez activer la déclaration d'avancement et connecter vos gestionnaires d'événements:
// Enable progress reporting
backgroundWorker1.WorkerReportsProgress = true;
// Hook up event handlers
backgroundWorker1.DoWork += backgroundWorker1_DoWork;
backgroundWorker1.RunWorkerCompleted += backgroundWorker1_RunWorkerCompleted;
backgroundWorker1.ProgressChanged += backgroundWorker1_ProgressChanged;