Bonjour,
Après 5 tentatives et 5 techniques différentes, je m'en remets à vous !
Merci par avance!
Pour faire simple
j'ai besoin de synchroniser et désynchroniser certains de mes evenements sur VB6
Pour tester, j'ai
- bouton n°1
fonction souhaitée :
pause_1 pendant quelques secondes (timer_1 +doevents_1)
faire qqch_1
pause_1 pendant quelques secondes (timer_1 +doevents_1)
faire qqch_1
- bouton n°2
fonction souhaitée :
pause_2 pendant quelques secondes (timer_2 +doevents_2)
faire qqch_2
pause_2 pendant quelques secondes (timer_2 +doevents_2)
faire qqch_2
Lorsque le code est exécuté :
cas1 : on appuie sur "1"
RAS
cas2 : on appuie sur "2"
RAS
cas3 : on appuie sur "1" puis rapidement sur 2
(je veux que les 2 actions se fassent en parallèle)
pause_1 pendant quelques secondes (timer_1 +doevents_1)
pause_2 pendant quelques secondes (timer_2 +doevents_2)
faire qqch_2
pause_2 pendant quelques secondes (timer_2 +doevents_2)
faire qqch_2
faire qqch_1
pause_1 pendant quelques secondes (timer_1 +doevents_1)
faire qqch_1
-> les actions 2 ne laissent pas le timer_1 +doevents_1 sortir de sa boucle pour effectuer qqch_1 en parallèle ...
pour comprendre et visualiser lors de l’exécution du projet:
- pause_1 est visible via un compteur 0->450
- faire qqch_1 : remise à Zero du compteur
- pause_2 est visible via un compteur 0->450
- faire qqch_1 : remise à Zero du compteur
Il me semble que lorque lorsque Command1_Click puis Command2_Click sont lancés quasi en même temps, la condition de sortie de la boucle "while" de Command1_Click n'est plus testée (alors que Text1.Text est largement > 450)
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 Private Sub Command1_Click() Dim tempoo As Integer i1 = 0 Text1.Text = 0 Bt_LancerThread_Click 'juste un timer qui incremente i1 While (Val(Text1.Text) < 450)'Text1.Text=i1 , i1 incréménté par le thread lancé DoEvents Wend Bt_TerminerThread_Click i1 = 0 Text1.Text = 0 Bt_LancerThread_Click While (Val(Text1.Text) < 450)'Text1.Text=i1 , i1 incréménté par le thread lancé DoEvents Wend Bt_TerminerThread_Click End Sub Private Sub Command2_Click() Dim tempoo As Integer i2 = 0 Text2.Text = 0 Bt_LancerThread2_Click 'juste un timer qui incremente i2 While (Val(Text2.Text) < 450)'Text2.Text=i2 , i2 incréménté par le thread lancé DoEvents Wend Bt_TerminerThread2_Click i2 = 0 Text2.Text = 0 Bt_LancerThread2_Click While (Val(Text2.Text) < 450) 'Text2.Text=i2 , i2 incréménté par le thread lancé DoEvents Wend Bt_TerminerThread2_Click End Sub
Est ce que quelqu'un peut jeter un œil à mon Pb ? Merci encore
lien fichier projet
mot de passe : ubuntuflo
Partager