2010-03-10 12 views
4

Existe-t-il un moyen de limiter l'utilisation du processeur d'un service Windows écrit en .NET, que ce soit à l'intérieur du code de service ou à l'extérieur. Le réglage du thread actuel à la priorité la plus basse n'est pas une option, mais dès que des exceptions commencent à se produire, la charge du processeur augmente, est-il possible de limiter cela?Limiter l'utilisation du processeur d'un service Windows .NET

+2

Il n'existe aucun moyen de définir les limites d'une valeur fixe dans Windows (par exemple 25%). La définition de la priorité des threads est une option que vous devez prendre en compte. Toutefois, la véritable tâche à accomplir consiste à déterminer pourquoi le processeur est en train d'augmenter. –

Répondre

0

La bande passante mémoire de ces jours et l'utilisation de la mémoire cache du processeur correspondent à un problème lié au temps CPU.

Je ne sais pas d'un système d'exploitation qui a gardé jusqu'à ...

Vous pouvez essayer d'utiliser un Thread.Sleep dormir pour 50% du temps de mur, en désordre, mais peut travailler.

5

Vous devez regarder de plus près votre application. Pourquoi lance-t-il des exceptions, et pourquoi ces exceptions utilisent-elles tant de CPU?

0

Si vous avez besoin de contrôler l'utilisation du processeur en dehors du code, je suggère d'utiliser ThreadMaster http://threadmaster.tripod.com/ Il est un peu obsolète mais je l'ai utilisé dans le passé et il a réussi à résoudre mon problème.

Ceci n'est pas idéal pour une solution à long terme, mais pourrait être un bon outil dans certains scénarios spécifiques.