2011-06-05 3 views
0

J'ai une fonction:Discussion active avec minuterie int C#

void foo() 
{ 
string a="f"; 
string b="t"; 
Console.WriteLine(a+b); 
} 

J'ai aussi quelques int (le functioin savent) qui est le nombre de minutes pour activer la fonction (Appelons ce chiffre). Je veux faire cette fonction dans un thread qui va faire la partie d'initialisation juste une fois, puis imprimer a+b chaque minute jusqu'à la fin du COUNT. Je veux aussi que si le bouton "stop" va pousser je vais arrêter le fil. comment puis-je le faire?

Répondre

1

Vous devez d'abord créer une minuterie et la configurer pour qu'elle se déclenche toutes les minutes (60 secondes, 60k ms). Ensuite, vous ajoutez un gestionnaire d'événements à l'événement Elapsed (en utilisant + =). En troisième lieu, le gestionnaire a cette signature

static void timer_Elapsed(object sender, ElapsedEventArgs e) 

de sorte que vous obtenez une référence à la minuterie du paramètre sender. Quatrièmement, vous avez une variable statique dans le gestionnaire qui compte le nombre de fois où elle a été déclenchée.

S'il atteint le COUNT, vous arrêtez le redémarrage du formulaire de temporisation (définissez sa propriété Enabled sur false). Vous pouvez le faire en raison de la troisième étape. Si le nombre est inférieur à COUNT, imprimez les éléments à imprimer. Si le compte est 0 alors faites l'initialisation.

Réponse à la question edit: Avoir la minuterie disponible dans la classe du programme. Ensuite, dans le gestionnaire d'événements du bouton Stop, définissez la propriété Enabled du temporisateur sur false.