Pause dans un programme vb6

Résolu
cs_didine13 Messages postés 96 Date d'inscription mardi 18 août 2009 Statut Membre Dernière intervention 14 août 2013 - 23 févr. 2011 à 15:00
cs_didine13 Messages postés 96 Date d'inscription mardi 18 août 2009 Statut Membre Dernière intervention 14 août 2013 - 23 févr. 2011 à 16:08
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

Duke49 Messages postés 550 Date d'inscription jeudi 12 octobre 2006 Statut Membre Dernière intervention 6 juin 2015 4
23 févr. 2011 à 16:01
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
1
Duke49 Messages postés 550 Date d'inscription jeudi 12 octobre 2006 Statut Membre Dernière intervention 6 juin 2015 4
23 févr. 2011 à 15:10
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
0
cs_didine13 Messages postés 96 Date d'inscription mardi 18 août 2009 Statut Membre Dernière intervention 14 août 2013
23 févr. 2011 à 15:22
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
0
cs_didine13 Messages postés 96 Date d'inscription mardi 18 août 2009 Statut Membre Dernière intervention 14 août 2013
23 févr. 2011 à 15:44
trop de mémoire

Processeur erreur de ma part
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_didine13 Messages postés 96 Date d'inscription mardi 18 août 2009 Statut Membre Dernière intervention 14 août 2013
23 févr. 2011 à 15:54
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
0
cs_didine13 Messages postés 96 Date d'inscription mardi 18 août 2009 Statut Membre Dernière intervention 14 août 2013
23 févr. 2011 à 16:08
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.
0