démarrer une minuterie à partir d'un fil différent dans c #
Salut j'ai monté dans un problème lié à la minuterie.
espérons que quelqu'un peut aider..
- J'ai un windows en la forme et contenant un bouton
- quand je clique sur ce bouton, je commence un paramétrer fil
Thread thread1 = new Thread(new ParameterizedThreadStart( execute2));
thread1.Start(externalFileParams);
- le code dans le thread s'exécute très bien
- à la dernière ligne de ce fil, j'ai démarrer une minuterie
.
public void execute2(Object ob)
{
if (ob is ExternalFileParams)
{
if (boolean_variable== true)
executeMyMethod();//this also executes very well if condition is true
else
{
timer1.enabled = true;
timer1.start();
}
}
}
}
5 mais l'événement tick du timer n'est pas déclenché
Je suis en train de VS2008 3.5 framework. J'ai traîné la minuterie de la boîte à outils et définir sa Interval
à 300 aussi essayé de mettre en Enabled
vrai/faux
la méthode est timer1_Tick(Object sender , EventArgs e)
mais ce n'est pas tiré
quelqu'un peut-il suggérer ce que je fais de mal?
source d'informationauteur Swati | 2011-04-20
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer de démarrer le compte à rebours de cette façon:
Ajouter dans le constructeur du formulaire présent:
Ajouter cette méthode pour Form1:
Sur l'événement clic du bouton ajouter ceci:
Ce minuteur est déjà enfilée donc pas besoin de démarrer un nouveau thread.
Il est vrai que Matías Fidemraizer dit. Mais, il y a un travail autour de...
Lorsque vous avez un contrôle sur votre formulaire qui est invokable (eg. une barre de statut), il suffit d'invoquer qu'un seul!
Exemple de Code C#:
Système.De Windows.Les formulaires.La minuterie fonctionne dans un seul thread de l'application.
Vérifier ce lien:
Remarques dit:
Lire plus rubrique "Remarques" et vous constaterez que Microsoft vous recommande d'utiliser cette horloge de synchronisation avec le thread d'INTERFACE utilisateur.
Je voudrais utiliser un BackgroundWorker (au lieu d'un raw thread). Le thread principal serait abonnez-vous à la place de l'ouvrier RunWorkerCompleted événement: L'événement se déclenche dans votre thread principal lorsque le thread se termine. Utiliser ce gestionnaire d'événement à redémarrer votre minuterie.