Combien de temps en tête les minuteries proviennent dans une application s'ils fonctionnent en permanence (quel que soit l'intervalle)? P>
Je ne suis pas inquiet pour les appels que la minuterie fera quand elle tire, mais plutôt sur les effets de performance de l'utilisation de la minuterie dans les applications où la performance est de la plus haute importance et que je suis intéressé à entendre ce qu'il y a de points de vue. p>
3 Réponses :
L'événement invoqué par la minuterie s'exécutera dans le même thread que la minuterie appartient et bloquera donc ce fil tout en effectuant une logique. Cela signifie que si la minuterie appartient à la couche d'interface graphique, l'exécution de la méthode Timer.Tick va enfermer l'interface graphique pendant son exécution. P>
Pour maintenir les performances dans le fil principal, je suggère d'utiliser un travailleur d'arrière-plan code> plutôt que cela s'exécute dans son propre thread. P>
Il existe des types de fois dans .net msdn.microsoft.com/en-us /magazine/cc164015.aspx Lequel parlez-vous?
Je faisais référence à System.Windows.Forms.Timer avec ma déclaration ci-dessus.
Pour répondre de la même manière: les minuteurs sont inestimables pour la programmation de l'interface graphique, mais sont à peu près inutiles pour des tâches de haute performance. Quelques problèmes avec les minuteries: p>
Si vous envisagez un autre thread pour une certaine opération, assurez-vous de ne toucher aucun composant d'interface graphique. Utilisez soit invoquer () ou copiez des mises à jour pour une interface graphique à une file d'attente, puis de le protéger avec la minuterie du fil principal de l'interface graphique. P>
La minuterie, entre ses tiques, ajoute un coût extrêmement faible à l'application. Il utilise le mécanisme de la planification du système d'exploitation (qui est actif quelles que soient vos actions), par opposition au concept intuitif d'interrogation de l'horloge du système de manière constante. P>
fondamentalement, autre que l'addition de données de la mémoire et du contexte ajouté (ajouts mineurs dans ce cas ne devrait pas être plus d'ajout d'un bouton à votre formulaire) Il ne devrait y avoir plus de frais généraux. P>
En ce qui concerne les minuteries et le filetage, "la mise en commun" et "sondage" sont deux mots différents que l'on devrait faire attention à épeler correctement;)
OMS! Ma faute. Merci, @ d7samurai.
Il existe des types de fois dans .net msdn.microsoft.com/en-us /magazine/cc164015.aspx Lequel parlez-vous?
Eh bien, je faisais référence aux minuteries en général - mais la demande actuelle où je me suis préoccupé est une application Silverlight, de sorte que je voudrais utiliser le DispatcherTimer. Merci