Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Bouton Pause

6 réponses
Avatar
ms
Je n'arrive pas a trouver un moyen en VB pour faire fonctionner un bouton
Pause.

Mon appli envoie plusieurs commandes à la suite a une autre et est bloquée
jusqu'a la fin en sachant que pour chaque commandes envoyé il y a une
attende de 2 -5 secondes pour recevoir une réponse.

Pendant tout ce temps rien ne se passe quand je clique sur le bouton Pause.
j'ai essaie le Doevents mais ça n'aide pas.

Y a t'il une solution ?

Merci

6 réponses

Avatar
Aurélien [MS]
Bonjour,

Je suppose que ton bouton Pause est censé arrêter tes longues commandes.
L'idéal dans ce cas est le multi-threading.

Voici un exemple.
Crée une Form, et ajoutes 3 boutons (un bouton pour lancer une longue tâche,
un bouton pour faire pause et un bouton pour reprendre).
Fais un Imports System.Threading.

Voici le code :

Dim myThread As Thread
Dim myThreadStart = New ThreadStart(AddressOf boucleLongue)

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
myThread = New Thread(myThreadStart)
myThread.Name = "Update Thread"
myThread.IsBackground = True
myThread.Start()
End Sub

Private Sub ButtonPause_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ButtonPause.Click
myThread.Suspend()
End Sub

Private Sub ButtonResume_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ButtonResume.Click
myThread.Resume()
End Sub


Private Sub boucleLongue()
Dim i As Double = 0
While i < 5000000000
i += 1
End While
MessageBox.Show("terminé")
End Sub


--
Cordialement,

Aurélien NORIE
Microsoft France
------------------
Merci de bien vouloir répondre à ce message dans le newsgroup où il a été
posté. Je le consulte régulièrement.


"ms" wrote in message
news:
Je n'arrive pas a trouver un moyen en VB pour faire fonctionner un bouton
Pause.

Mon appli envoie plusieurs commandes à la suite a une autre et est bloquée
jusqu'a la fin en sachant que pour chaque commandes envoyé il y a une
attende de 2 -5 secondes pour recevoir une réponse.

Pendant tout ce temps rien ne se passe quand je clique sur le bouton


Pause.
j'ai essaie le Doevents mais ça n'aide pas.

Y a t'il une solution ?

Merci




Avatar
Aurélien [MS]
Désolé, je me croyais dans le Newsgroup VB.NET...
Ce code ne fonctionne évidemment pas en VB6.

--
Cordialement,

Aurélien NORIE
Microsoft France
------------------
Merci de bien vouloir répondre à ce message dans le newsgroup où il a été
posté. Je le consulte régulièrement.


"ms" wrote in message
news:
Je n'arrive pas a trouver un moyen en VB pour faire fonctionner un bouton
Pause.

Mon appli envoie plusieurs commandes à la suite a une autre et est bloquée
jusqu'a la fin en sachant que pour chaque commandes envoyé il y a une
attende de 2 -5 secondes pour recevoir une réponse.

Pendant tout ce temps rien ne se passe quand je clique sur le bouton


Pause.
j'ai essaie le Doevents mais ça n'aide pas.

Y a t'il une solution ?

Merci




Avatar
The Ultimate Video Game Museum
Dim Pause As Boolean

----------------------------------------

Private Sub Command1_Click()

If Pause = True Then

Pause = False
Command1.Caption = "Pause"

Else

Pause = True
Command1.Caption = "Continuer"

End If

End Sub

----------------------------------------

Private Sub Form_Load()

Pause = False

End Sub

----------------------------------------

Private Sub Test()

Commande_1

While Pause = True

DoEvents

Wend

Commande_2

While Pause = True

DoEvents

Wend

Commande_3

While Pause = True

DoEvents

Wend

etc ...

End Sub

----------------------------------------

Voila ... Ca ça marche ! Mais regarde bien ton code car c''est pas très
compliqué.
T'as dû faire une erreur toute conne comme on fait souvent.

Topper

Webmastering, webdesign des sites :
The Ultimate Video Game Museum : http://www.TUVGM.com/
TUVGM Live Playing ! : http://www.TUVGM.com/liveplaying/
FreeDO France : http://www.TUVGM.com/freedo/





"ms" a écrit dans le message de
news:
Je n'arrive pas a trouver un moyen en VB pour faire fonctionner un bouton
Pause.

Mon appli envoie plusieurs commandes à la suite a une autre et est bloquée
jusqu'a la fin en sachant que pour chaque commandes envoyé il y a une
attende de 2 -5 secondes pour recevoir une réponse.

Pendant tout ce temps rien ne se passe quand je clique sur le bouton


Pause.
j'ai essaie le Doevents mais ça n'aide pas.

Y a t'il une solution ?

Merci




Avatar
Zoury
Salut! :O)

Pour contiuer sur la même voie qu'Aurélien, il faudra te tourner du côté des
ActiveX Exe ou autres composantes tierces...

Regarde cette discussion récente sur le sujet :
http://groups.google.com/groups?threadm=eTCZq83gDHA.2080%40TK2MSFTNGP12.phx.gbl

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
Avatar
ms
Merci a tous pour votre aide.

Fred

"ms" a écrit dans le message de
news:
Je n'arrive pas a trouver un moyen en VB pour faire fonctionner un bouton
Pause.

Mon appli envoie plusieurs commandes à la suite a une autre et est bloquée
jusqu'a la fin en sachant que pour chaque commandes envoyé il y a une
attende de 2 -5 secondes pour recevoir une réponse.

Pendant tout ce temps rien ne se passe quand je clique sur le bouton


Pause.
j'ai essaie le Doevents mais ça n'aide pas.

Y a t'il une solution ?

Merci




Avatar
News
Ca ca marche très bien :

<<
Sub Pause(Durée As Long)
Dim Delay!, Dummy As Integer
Delay! = Timer + Durée
Do
Dummy = DoEvents()
Loop Until ((Timer > Delay!) Or (Timer < 3))
End Sub

puis...

Do
pause (10) 'pause de 10 seconde
Loop traitementOK
>>



"ms" a écrit dans le message de
news:
Je n'arrive pas a trouver un moyen en VB pour faire fonctionner un bouton
Pause.

Mon appli envoie plusieurs commandes à la suite a une autre et est bloquée
jusqu'a la fin en sachant que pour chaque commandes envoyé il y a une
attende de 2 -5 secondes pour recevoir une réponse.

Pendant tout ce temps rien ne se passe quand je clique sur le bouton


Pause.
j'ai essaie le Doevents mais ça n'aide pas.

Y a t'il une solution ?

Merci