Vous pouvez également introduire une veille lente dans la boucle principale qui arrime le processeur. Par exemple, cela se fait souvent par des boucles de jeu - appeler Thread.CurrentThread.Sleep(1);
une fois par image va prendre la plupart des jeux d'utiliser 100% cpu à 1-2% CPU, et permettre un accès raisonnable.
----- ------ Modifier
Il y a des avantages potentiels de dormir sur abaisser la priorité du processus ou d'un fil. Les deux principaux sont:
- Dormir vous donne plus de contrôle sur le temps de processeur que vous abandonnez. Si vous réduisez votre priorité et que d'autres processus gourmands en CPU se produisent, vous risquez de perdre plus de temps que vous ne le souhaitez. [C'est pourquoi je n'ai pas fait de Sleep (0) non plus - puisque cela n'abandonnera pas toujours le temps du processeur, bien qu'il en abandonne un peu. Je l'ai fait dans les systèmes embarqués avec un sommeil prolongé pour forcer moins d'utilisation du processeur.]
- Si votre objectif est de réduire l'utilisation totale de votre processeur, l'abaissement de votre priorité de processus n'aidera pas si rien d'autre n'est en cours d'exécution. Vous mangerez toujours 100% du CPU.Cela peut être utile si vous essayez de réduire votre consommation d'énergie (économies d'énergie) ou si vous essayez de réduire la production de chaleur, en fonction de l'architecture de votre système.
----- ----- De originale
Pour d'autres styles (UI) des applications, une autre option est de factoriser votre routine d'être asyncronous, briser votre traitement en sections et traiter ces dans les blocs d'un appel en vous abonnant à quelque chose comme Application.OnApplicationIdle. Cela peut permettre à votre interface utilisateur de rester un peu réactive, car elle fonctionnera par à-coups.
S'il s'agit d'une routine mathématique, et qu'elle fait beaucoup de calculs, alors réduire la priorité des threads et lui permettre d'utiliser le plus de CPU possible pourrait être meilleur.
Le processeur inactif est le jouet du diable! – bzlm