L'écriture d'une boucle infinie est simple:
while(true){
//add whatever break condition here
}
Mais ce sera poubelle la performance du CPU. Ce thread d'exécution prendra autant que possible de la CPU de puissance.
Quel est le meilleur moyen pour diminuer l'impact sur le CPU?
L'ajout de quelques Thread.Sleep(n)
devrait faire l'affaire, mais la définition d'une haute valeur de délai d'expiration pour l' Sleep()
méthode peut indiquer une application qui ne répond pas au système d'exploitation.
Disons que j'ai besoin pour effectuer une tâche chaque minute ou deux dans une application console.
J'ai besoin de garder Main()
cours d'exécution dans une "boucle infinie", tandis qu'un timer déclenche l'événement qui va faire le travail. J'aimerais conserver Main()
avec l'impact le plus faible sur le CPU.
Quelles sont les méthodes que vous proposez. Sleep()
peut être ok, mais comme je l'ai déjà mentionné, cela pourrait indiquer un insensible fil pour le système d'exploitation.
PLUS TARD EDIT:
Je veux expliquer mieux ce que je suis à la recherche de:
J'ai besoin d'une application console pas de service Windows. Console les applications peuvent simuler les services Windows sur Windows Mobile 6.x systèmes avec le Compact Framework.
J'ai besoin d'un moyen de garder l'application en vie aussi longtemps que l'appareil Windows Mobile est en cours d'exécution.
Nous savons tous que l'application de console s'exécute tant que ses statique de la fonction main() s'exécute, j'ai donc besoin d'un moyen de prévenir la fonction main() de sortie.
Dans des situations particulières (comme: mise à jour de l'application), j'ai besoin de demander l'application d'arrêter, j'ai donc besoin de boucle à l'infini et de test pour certains sortie de la condition. Par exemple, c'est pourquoi,
Console.ReadLine()
n'est d'aucune utilité pour moi. Il n'y a pas de sortie contrôle de condition.À ce sujet, je tiens à ce que la fonction main() en tant que ressource conviviale que possible. Laissez asside l'empreinte de la fonction qui vérifie la condition de sortie.