L'exécution d'une fonction toutes les 2 secondes
public void InitTimer()
{
timer1 = new Timer();
timer1.Tick += new EventHandler(timer1_Tick);
timer1.Interval = 200; //in milliseconds
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
MessageBox.Show("test");
}
En utilisant le code de Comment puis-je générer un événement chaque heure (ou intervalle de temps spécifique à chaque heure).NET?
Je suis TRÈS novice en C#, mais je ne suis pas sûr de ce qui est mauvais. Je suis en train d'afficher une messagebox dans cet exemple, toutes les 2 secondes. Il n'y a pas d'erreurs, la messagebox simplement ne pas montrer.
200 millisecondes != 2 secondes.
Quel est le problème réel de votre devoir? Ne vous obtenez une erreur, ou le code tout simplement pas appelé?
2 secondes seraient 2000 millisecondes, pas 200
Êtes-vous sûr que vous êtes d'appel
que faire si timer1_Tick fonction a fallu 1 minute pour terminer?
Quel est le problème réel de votre devoir? Ne vous obtenez une erreur, ou le code tout simplement pas appelé?
2 secondes seraient 2000 millisecondes, pas 200
Êtes-vous sûr que vous êtes d'appel
InitTimer()
?que faire si timer1_Tick fonction a fallu 1 minute pour terminer?
OriginalL'auteur Prash | 2011-11-30
Vous devez vous connecter pour publier un commentaire.
Vous avez oublié d'appeler la fonction à votre charge.
Pas de problème 🙂 N'oubliez pas de upvote 😉
Je ne voudrais pas créer de tels "les fonctions du sommeil" il y a un gaspillage de ressources, car auf morts / threads endormis...
Nécessite 15 rep, sinon je le ferais 😛
Si ce n'est de dormir sur le thread de l'INTERFACE utilisateur, c'est une mauvaise idée, cela permettra d'éviter le traitement des messages de windows...
OriginalL'auteur Skami
J'ai essayé votre code (changement de 200ms à 2000ms), et il ne afficher la boîte de message toutes les 2 secondes, donc le problème n'est pas le code, mais plus probablement de la façon dont vous êtes en l'appelant. Je viens de créer un échantillon Winforms application, et mettre l'appel à InitTimer dans l'événement Load du formulaire:
Lors de la création du projet, vous créez une application Windows Forms? Vous ne devriez pas avoir créé une application Console, par exemple.
OriginalL'auteur JohnD
Il suffit de régler l'intervalle de la minuterie à la valeur que vous avez besoin.
200 signifie 200 ms
afin d'Intervalle = 2000 signifie que le code est déclenché toutes les deux secondes
Mais où est votre problème ? Ce qui ne fonctionne pas ?
Il y a aussi quelques questions concernant l'interface utilisateur et non de l'interface utilisateur de threads.
Définissez un point d'arrêt à la MessageBox appel et voir si elle est soulevée.
OriginalL'auteur Boas Enkler
Eh bien, vous avez 60 minutes dans une heure, 60 secondes dans une minute, et 1000 ms en une seconde, de sorte que vous pouvez avoir
Lol très drôle.
OriginalL'auteur Dave Walker
Si vous voulez éviter le blocage de la fil, vous pouvez toujours générer un nouveau thread et continuer les bureaux de là. En utilisant le même code que vous avez, mais
OriginalL'auteur RogerDTaylor
Vous avez besoin de mettre un supplément de Minuterie avant timer1
cela fonctionne, mais faire shure vous initialisation du timer
OriginalL'auteur Moonlight