La création d'un arrière-plan de la minuterie pour exécuter de manière asynchrone

J'ai vraiment du mal avec cette. Je suis de la création d'un winforms application dans visual studio et ont besoin d'un arrière-plan de la minuterie que les tiques une fois chaque demi-heure - le but est de tirer vers le bas les mises à jour à partir d'un serveur.

J'ai essayé un couple de différentes approches, mais ils ont échoué, que ce soit en raison de la mauvaise tutoriel/exemples, ou à mes propres défauts dans C#. Je pense que ce serait une perte de temps pour vous montrer ce que j'ai essayé jusqu'à présent, comme il semble que j'ai essayé était assez loin de la marque.

Personne ne sait de façon claire et simple de mise en œuvre d'un asynchrones fond de compteur qui est facilement compréhensible par un C# newbie?

  • Je suppose que vous êtes en utilisant System.Timers.Timer?
  • À mon avis la question la plus importante est: Quelle quantité de travail qui va se produire lorsque la minuterie est exécuté? Quel sera l'effet sur la repsponsivness de votre programme. Veuillez noter que tous les WinForms application de s'exécuter dans un thread de l'INTERFACE utilisateur, si ce fil est occupé soudain tirant quelques données à partir d'un serveur de vos utilisateurs l'aiment pas, alors la question , avez-vous besoin d'une multithread solution ou pas.
  • Il n'est pas particulièrement lourd processus. Juste s'empare d'une table de données à partir d'un serveur, puis s'exécute SQL basé sur le contenu de la table. La plupart du temps rien n'est retourné de toute façon.
  • Ensuite, il est préférable d'utiliser le Système.De Windows.Les formulaires.La minuterie et le Système.De Windows.Le filetage.Minuterie. Ces sont pratiques, car ils exécutent leur code sur le thread GUI, donc pas besoin explicite Invoquer des appels. Ces horloges sont bonnes pour une rapide mise à jour périodique de l'interface graphique. Si le code est plus long cours d'exécution, vous devez utiliser le Système.Le filetage.Minuterie explicite Appeler juste pour la mise à jour de la partie
InformationsquelleAutor Mike Baxter | 2013-04-08