Comment empêcher un événement de minuterie C # System.Timers de Blocking Events ultérieurs?

StackOverflow https://stackoverflow.com//questions/25066056

Question

J'ai une application C # qui utilise une minuterie System.Timers qui appelle à plusieurs reprises une fonction.Le problème est, en fonction de la charge de travail, si le traitement d'un appel de fonction atteint un certain pourcentage d'utilisation de la CPU (98-100%), tout événement ultérieur est bloqué.

existe-t-il un moyen d'empêcher un tel scénario afin que les événements ne soient pas bloqués?

Par exemple, le gestionnaire d'événements de la minuterie est une fonction qui exécute un code dynamique, ce qui peut prendre un certain temps et de ressources pour traiter.Au cours de ce traitement, un booléen est défini sur True, ce qui provoque des appels d'événements ultérieurs à écrire dans un fichier journal.Une fois le traitement d'un événement atteint une utilisation élevée de la CPU, cependant, des événements supplémentaires n'écriront pas au fichier journal.

Était-ce utile?

La solution

Oui, définissez la propriété des minuteries Autoreset sur TRUE.

Lire: https://msdn.microsoft.com/en-us/library/system.timers.timer(v=VS.110).aspx

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top