Bonjour à tous!
Je me tourne vers vous par ce que j'ai un bug incompréhensible dans mon petit programme. Pour résumé, c'est un logiciel d'automatisation de tests batteries. En gros, on le lance, et il va successivement lancer une vidéo pendant 22 min, puis lancer 10 onglets firefox, puis ouvrir fermer word/adobe reader/mp3 10 fois chacun.
Pour cela, j'utilise le gestionnaire d'evenement des timers. Je fais un des tests, quand celui ci est fini, je modifie l'event manager pour qu'il passe au suivant, en modifiant le temps. Jusque la pas de soucis. Le probleme vient des timers pour les 3 derniers. J'ouvre le programme une fois, je le ferme, je le rouvre, et après plus rien ne se passe...
J'utilise visual 2010, et quand je fais du step by step en debug, il step dans un autre ticks de timer, et s'arrete. Comme si le timer en question s'était désactivé. J'ai enlevé ledit timer, et la il sort de la fonction, et le debug s'arrete... Voici la code:
et donc dans cette derniere fonction (et egalement pour les 2 autres pdf/mp3 qui sont similaire) il passe 2 fois dans le tick, et après plus rien...
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 private void launchTest() { MessageBox.Show("Battery test initiated"); s_myTimer.Tick += new EventHandler(s_myTimer_word); s_myTimer.Interval = 5000; s_myTimer.Start(); } static void s_myTimer_vlc(object sender, EventArgs e) { if (s_myCounter == 0) { Process.Start("C:\\testautonomie\\gattaca_x264hd-001.mkv"); s_myTimer.Interval = 10000; } if (s_myCounter >= 1) { closeApp("vlc"); s_myCounter = 0; s_myTimer.Tick -= new EventHandler(s_myTimer_vlc); s_myTimer.Tick += new EventHandler(s_myTimer_word); s_myTimer.Interval = 5000; s_myTimer.Start(); } s_myCounter++; } // jusque la, pas de soucis, tout ce passe bien! ca ce complique derrière: static void s_myTimer_word(object sender, EventArgs e) { if (s_myCounter > 0) closeApp("wordpad"); Process.Start("C:\\testautonomie\\txt.txt"); if (s_myCounter >= 5) { closeApp("wordpad"); s_myCounter = 0; s_myTimer.Tick -= new EventHandler(s_myTimer_word); s_myTimer.Tick += new EventHandler(s_myTimer_pdf); s_myTimer.Interval = 5000; s_myTimer.Start(); } s_myCounter++; }
Si quelqu'un a une idée, je suis plus que preneur!
Merci d'avance!
Partager