IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

thread / doevents / timer -> ca veut pas faire en parallele


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3
    Points : 0
    Points
    0
    Par défaut thread / doevents / timer -> ca veut pas faire en parallele
    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

    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
    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)


    Est ce que quelqu'un peut jeter un œil à mon Pb ? Merci encore

    lien fichier projet
    mot de passe : ubuntuflo

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3
    Points : 0
    Points
    0
    Par défaut
    ou alors, on peut se poser la question :
    Pourquoi est ce que la boucle While (Val(Text1.Text) < 450) reste active alors qu'en fait Val(Text1.Text>450) ?

Discussions similaires

  1. [Thread] Serveur qui ne veut pas écouter
    Par CARNIBAL dans le forum Concurrence et multi-thread
    Réponses: 4
    Dernier message: 16/01/2009, 08h14
  2. Réponses: 0
    Dernier message: 26/06/2008, 02h34
  3. Je n'arrive pas à faire sans stop() pour un thread
    Par PaladinFr dans le forum Concurrence et multi-thread
    Réponses: 2
    Dernier message: 15/03/2007, 14h37
  4. [CSS] IE 6 ne veut pas faire un display:none
    Par kael kael dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 25/07/2006, 12h46
  5. ShellExecute qui veut pas faire son boulot...
    Par giloutho dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 31/08/2005, 11h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo