' '
Bonjour,
Perso je l'utilise de la manière suivante :
- Soit je le déclare dans ma variable, soit en attribut si j'en ai besoin à plusieurs endroits dans mon code
- Je fixe ensuite quand il doit se lancer :
- Je crée la callback qui doit être appelée à la fin du Timer d'une des deux manières suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part timer.Interval = TimeSpan.FromSeconds(15);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 timer.OnTick += (sender, e) => { // Do some stuff timer.Stop(); // Pour qu'il ne se lance qu'une fois };Et une fois que tu ça est fait, je déclenche mon Timer quand c'est nécessaire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 timer.OnTick += DoSomeStuff; private void DoSomeStuff(object sender, EventArgs e) { // Do some stuff timer.Stop(); // Pour qu'il ne se lance qu'une fois };
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 timer.Start();
Mon blog sur les technos .NET et Agile -> http://blog.developpez.com/maximepalmisano/
Merci à toi MaximePalmisano,
Je n'arrive cependant pas à implémenter correctement ta proposition dans mon code.
Ce Timer me rend fou, j'ai lu plusieurs doc mais je vois vraiment pas comment l'exploiter.
Qu'est ce qui te pose problème ? Quels sont les points où tu bloques ?
Mon blog sur les technos .NET et Agile -> http://blog.developpez.com/maximepalmisano/
Mon programme doit:
donner 15 secondes à l'utilisateur avant de cliquer sur le boutton. Si ce délais est dépassé un message d'erreur apparait.
Si l'utilisateur à cliquer sur le boutton avant l'interval de 15 secondes, j'appelle ma fonction ChargerQuestion() qui s'occupe de passer à l'étape suivante.
Je ne comprend pas comment développer cela dans mon code.
Tu crées un attribut Timer dans ta classe que tu instancies.
Ensuite, quand tu dois déclencher le chrono avec timer.Start(); quand doit commencer le décompte des 15 secondes.
Si le décompte se finit, la callback YouLost(); (par exemple) est appelée et tu arrêtes le timer puis fais le traitement correspondant au fait qu'il n'a pas appuyé.
Si il clique sur le bouton, dans la callback du bouton tu arrêtes le timer avant qu'il ne se déclenche avec timer.Stop();
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 public class MyGame { private Timer myTimer = new Timer(); public MyGame() { // Do some stuff myTimer.Interval = TimeSpam.FromSeconds(15); myTimer.Tick += UserLost; } public void LaunchTimer() { myTimer.Start(); } public void UserClickedOnTheGoddamnButton(object sender, EventArgs e) { myTimer.Stop(); // We stop the timer before the tick // Do some winner stuff } private void UserLost(object sender, EventArgs e) { timer.Stop(); // We stop the timer so it can't tick twice // Do some loser stuff } }
Mon blog sur les technos .NET et Agile -> http://blog.developpez.com/maximepalmisano/
Partager