Pause dans un programme vb6 [Résolu]

Signaler
Messages postés
96
Date d'inscription
mardi 18 août 2009
Statut
Membre
Dernière intervention
14 août 2013
-
Messages postés
96
Date d'inscription
mardi 18 août 2009
Statut
Membre
Dernière intervention
14 août 2013
-
Bonjour,
Je viens d'écrire un bout de code qui permet de faire une pause dont que un autre code n'a pas fini sont travail.
Mais le problème les ressources de la mémoire sont trop utilisées.
Voila le bouton de code si vous pouvez m'aider

je vous promets que j'ai cherche dans le forum, mais rien trouver

Merci d'avance

Public Sub Sleepy(Do_Events As Boolean)
Do
If Second(Time) = 50 Then Exit Sub 'ceci est juste un exemple
If Do_Events = True Then DoEvents
Loop
End Sub

Private Sub Command1_Click()
Me.Caption = "Debut"
Sleepy True
Me.Caption = "Suite"
End Sub

6 réponses

Messages postés
550
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
4
C'est pas bon de stopper l'exécution d'un prog; développe ton projet.

Sinon j'ai pas de code sous la main, alors...
- Evite le threading sous vb6
- Regarde les APIs: OpenProcess & WaitForSingleObject
- Regarde cette API ne fait pas ramer ton prog: Sleep

Sinon sur le site suivant y a un bon Waiteur vb6 à personnaliser:
http://smsoft.ru/en/vbwait.htm
Messages postés
550
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
4
Public Sub SleepEx(ByVal lInterval As Double)
    Dim lTimeNow As Double, lTimeEnd As Double
    lTimeNow = Timer
    lTimeEnd = lTimeNow + lInterval
    Do While Timer < lTimeEnd
        DoEvents
    Loop
End Sub
Messages postés
96
Date d'inscription
mardi 18 août 2009
Statut
Membre
Dernière intervention
14 août 2013

Merci a toi Duke49, mais je ne cherche pas une fonction sleep, mais plutôt une fonction qui

1) Ne bloque pas le programme
2) Attend en temps réels la fin du code pour poursuivre...

Comme l'exemple que j'ai donné plus haut
en faite c'est un problème avec do loop qui bouffe trop de mémoire.

Ce code est juste un exemple, car on peut placer autre chose
If Second(Time) = 50 Then Exit Sub 'ceci est juste un exemple
Messages postés
96
Date d'inscription
mardi 18 août 2009
Statut
Membre
Dernière intervention
14 août 2013

trop de mémoire

Processeur erreur de ma part
Messages postés
96
Date d'inscription
mardi 18 août 2009
Statut
Membre
Dernière intervention
14 août 2013

bizarre j'ai rajouter sleep 10 le processeur ne bouge plus ca laire de bien fonctionner, mais j'attend vos sucgestion



Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Public Sub Sleepy(Do_Events As Boolean)
Do
Sleep 10
If Second(Time) = 50 Then Exit Sub 'ceci est juste un exemple
If Do_Events = True Then DoEvents
Loop
End Sub

Private Sub Command1_Click()
Me.Caption = "Debut"
Sleepy True
Me.Caption = "Suite"
End Sub
Messages postés
96
Date d'inscription
mardi 18 août 2009
Statut
Membre
Dernière intervention
14 août 2013

Sinon sur le site suivant y a un bon Waiteur vb6 à personnaliser:
http://smsoft.ru/en/vbwait.htm


Très bonne source Merci je vais voir tous ça.