Accueil > Forum > > > > Pause-redemarageet stop avec une fonction récursive
Pause-redemarageet stop avec une fonction récursive
samedi 22 novembre 2008 à 18:07:37 |
Pause-redemarageet stop avec une fonction récursive

Naevis
|
Salut, Voilà, Je cherche par l'intermédiaire de 3 boutons le premier pour faire une pause sur la fonction récursive. le deuxieme pour faire un stop de la fonction le troiseme bouton pour continuer la fonction récurssive. Est-ce possibe?? Car je suis nouveau dans VB.net. Merci d'avance.
|
|
dimanche 23 novembre 2008 à 16:54:57 |
Re : Pause-redemarageet stop avec une fonction récursive

fauve
|
Salut, L'astuce serait de faire exécuter ta fonction récursive dans un autre thread. Ainsi, tu pourras stopper, suspendre, continuer, arrêter le thread et par conséquent, ta fonction aussi vu que c'est le thread qui va l'exécuter. Un petit exemple : Note : La méthode Suspend() et Resume() sont obsolète mais tu peux toujours les utiliser. Ca t'affichera seulement deux avertissements. Public Class Form1
Private _thread1 As Threading.Thread
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load _thread1 = New Threading.Thread(AddressOf ThrFunc1) ' ThrFunc1 est la fonction exécutée par le thread. _thread1.Name = "Thread1"' Il est parfois pratique de nommer les threads surtout si on en créé plusieurs. End Sub
Private Sub ThrFunc1() ' Traitement effectué par le thread. Try ' Appel de ta Fonction Récursive Catch ex As Exception Debug.WriteLine(ex.ToString()) End Try End Sub
Private Sub Lancer_Thread_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Lancer_Thread.Click _thread1.Start() ' Lance le thread End Sub
Private Sub Suspendre_Thread_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Suspendre_Thread.Click _thread1.Suspend() ' Suspend le thread End Sub
Private Sub Continuer_Thread_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Continuer_Thread.Click _thread1.Resume() ' Continue le thread suspendu End Sub
Private Sub Arreter_Thread_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Arreter_Thread.Click _thread1.Abort() ' Arrête le thread End Sub End Class
++ Fauve
Pensez : Réponse Acceptée 
|
|
lundi 24 novembre 2008 à 18:21:15 |
Re : Pause-redemarageet stop avec une fonction récursive

Naevis
|
Merci pour l'info,
J'ai testé mais je n'y arrive pas.
J'essaye de voir ce qu'est un thread.. Mais je ne comprend pas ce que c'est-_-
Je suis super novice.
Pour info, la fonction récursive est les tour d'hanoi.
Peut-on m'explique ou me donner des indications pour mieux comprendre le thread.
|
|
lundi 24 novembre 2008 à 18:46:52 |
Re : Pause-redemarageet stop avec une fonction récursive

fauve
|
Salut, Un thread permet de diviser l'application, il est conseillé de s'en servir, notamment dans les taches complexes qui risquent de bloquer l'interface Ainsi, si un Thread bloque ou ne réponds pas à cause d'une fonction qui effectue une tâche complexe, ton programme restera actif. En effet, si on effectue une recherche ou une écriture sur le disque qui est plutôt longue dans le même thread que ton programme, l'interface graphique de celui-ci sera gelé et tu pourras rien faire pendant le temps de l'exécution de la tâche. En résumé, un thread permet de réaliser des tâches en arrière plan. Note : Si tu as d'autres questions, n'hésites pas  ++ Fauve
Pensez : Réponse Acceptée 
|
|
lundi 24 novembre 2008 à 19:41:38 |
Re : Pause-redemarageet stop avec une fonction récursive

fauve
|
Sinon, Tu pourrais mettre le code de ta fonction récursive et en même temps le soucis que tu rencontres avec l'exemple que j'ai mis précedemment pour le thread ++ Fauve
Pensez : Réponse Acceptée 
|
|
lundi 24 novembre 2008 à 20:36:06 |
Re : Pause-redemarageet stop avec une fonction récursive

Naevis
|
Voilà le code que j'ai pour ma fonction pour le moment.
C'est très brouillon. j'ai renomé pas mal de chose à ma sauce. Donc il y a un risque de ce perdre
Public Class Form1
Dim cpt As Integer
Dim expoH As Integer
Public Sub Hanoi(ByVal N As Double, ByVal A As Char, ByVal B As Char, ByVal C As Char)
ProgressBar1.Value = cpt
If N > 0 Then
ProgressBar1.Value = cpt
Hanoi(N - 1, A, C, B)
lbldpl().Text = lbldpl.Text & vbCrLf & "Déplacer de " & A & " vers " & B & "."
Application.DoEvents()
minicompteur.Text = "evolution: " & cpt & " / " & (ProgressBar1.Maximum) & "."
ProgressBar1.Value = cpt
cpt = cpt + 1
ProgressBar1.Value = cpt
Hanoi(N - 1, B, A, C)
ProgressBar1.Value = cpt
End If
minicompteur.Text = "evolution: " & cpt & " / " & (ProgressBar1.Maximum) & " ."
lblpct.Text = cpt / (ProgressBar1.Maximum) * 100 & "%"
End Sub
Private Sub startH_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles startH.Click
expoH = nbrann.Value
ProgressBar1.Maximum = (2 ^ expoH) - 1
startH.Enabled = False
endH.Enabled = True
RaZH.Enabled = False
nbrann.Enabled = False
lbldpl.Text = "étape à suivre pour" & Str(nbrann.Value) & " anneaux."
Hanoi(nbrann.Value, "A", "B", "C")
totetape.Text = " le nombre d'étapes est de " & (ProgressBar1.Maximum) & " mouvements."
endH.Enabled = True
RaZH.Enabled = True
End Sub
Private Sub RaZH_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RaZH.Click
totetape.Text = "nombres d'étapes."
minicompteur.Text = " état en cours / total d'états à faire."
lblpct.Text = "Avancement en %. "
lbldpl.Clear()
startH.Enabled = True
nbrann.Enabled = True
ProgressBar1.Value = 0
cpt = 0
End Sub
Private Sub lbldpl_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lbldpl.TextChanged
lbldpl.SelectionStart = lbldpl.TextLength
lbldpl.ScrollToCaret()
End Sub
Private Sub endH_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles endH.Click
End
End Sub
End Class
|
|
lundi 24 novembre 2008 à 20:37:36 |
Re : Pause-redemarageet stop avec une fonction récursive

Naevis
|
Là c'est le code de base, je n'ai pas rajouté le thread car je ne sais pas ou le mettre déjà.
Où le déclarer et faire en sorte que tout tourne correctement.
Ici je n'ai pas rajouté les fonctionnalités que je souhaite mettre plus haut.
Enfin, voilà:)
|
|
lundi 24 novembre 2008 à 20:40:39 |
Re : Pause-redemarageet stop avec une fonction récursive

fauve
|
Bon déjà je vois tout de suite pourquoi le thread ne fonctionne pas car tu ne peux accéder à des contrôles qui ne se trouvent pas dans le même thread que ta fonction. Notamment, ProgressBar1
Pensez : Réponse Acceptée 
|
|
lundi 24 novembre 2008 à 20:43:57 |
Re : Pause-redemarageet stop avec une fonction récursive

Naevis
|
Bon j'ai modifié un truc, j'ai nettoyé ma fonction de toute les progressbar.
j'ai mis progressbar1.value=cpt dans le Private sub startH
|
|
lundi 24 novembre 2008 à 20:56:00 |
Re : Pause-redemarageet stop avec une fonction récursive

Naevis
|
Car ce que j'essaye aussi, c'est de pouvoir faire une pause sur la progressbar, et les label qui me montrent l'état d'avancement.
|
|
Cette discussion est classée dans : fonction, stop, pause, récursive, redemarageet
Répondre à ce message
Sujets en rapport avec ce message
fonction pause [ par cailloux ]
existe t il une fonction qui permette au programme de faire une pause en miliseconde si oui laquelle si non qu'elle est l'unité la plus faible qui per
Recherche le nom d'une fonction [ par eltaris ]
Existe t-il une fonction qui mette le programmeen "pause" pendant un temps que l'on choisit ?ex : si je tape Pause(5), le programme s'arrête pendant5
Fonction Dir récursive [ par legion91 ]
Voila je cherche le moyen de liste tout les fichiers d'un repertoire et ses sous répertoire avec la fonction Dir.Car la sa n'affiche que le repertoire
Play pause, stop [ par nuttyfbr ]
Comment mettre un bouton play, un pause et un stop dans le code source d'une page pour qu'il agisse sur la vidéos en cours (dans une i-frame) ?Pour pl
Vidage du stack [ par firens ]
Bonjour, j'ai fais une fonction récursive mais malheureusement après un certain nombre d'itération (je ne les contrôles pas...car je dois générer quel
pause [ par webzied ]
salut comment mais une pause d'une fonction sans arrter lors fonction en vb6
Pause dans access [ par antoineraymond ]
J'aimerais avoir une fonction pour écouler du temps avant de lancer d'autre fonction dans access sans utilisé le timer du formulaire.MerciAntoine
Arreter et sortir de fonctions : un 'Master Stop'... [ par tcholleybus ]
Bonjour à tous!J'ai actuellement besoin de vos lumières:Je lance une 'Sub' après avoir cliqué sur un bouton. Elle effectue une communication vers 2 ap
Faire une pause dans une fonction [ par gskorski ]
J'ai deux form. Quand la fonction unload de la première est appelée, j'appelle ma deuxième form. Mon problème c'est qu'il ferme ma première form alors
Pause dans une fonction [ par tchouck ]
j'ai cree une fonction de test et je voudrais faire une pause afin d'attendre une reponse.( env 0.5seconde )ex :if text1.text = "1" thentext2.text = "
Livres en rapport
|
Derniers Blogs
ASYNC/AWAIT: COMPRENDRE COMMENT CA MARCHEASYNC/AWAIT: COMPRENDRE COMMENT CA MARCHE par fathi
Tout le monde est unanime pour dire que la programmation multi-thread et asynchrone est en train de devenir un sujet incontournable. Beaucoup de choses sont arrivées avec le framework 4 pour le code parallèle (TPL, PLinq,.) et bientôt, on va avoir l...
Cliquez pour lire la suite de l'article par fathi PAS D'INTELLITRACE SUR MON SITE WEB DANS IIS !PAS D'INTELLITRACE SUR MON SITE WEB DANS IIS ! par Etienne Margraff
J'ai récemment eu un problème pour obtenir l'intelliTrace sur un site web dans IIS. Il n'y avait pas de message d'erreur, rien dans le journal d'évènement Windows, et après 3 appels à une voyante, 2 visites chez un marabou, j'ai failli me résign...
Cliquez pour lire la suite de l'article par Etienne Margraff OFFICE 365 - SHAREPOINT ONLINE, QUELQUES LIMITATIONSOFFICE 365 - SHAREPOINT ONLINE, QUELQUES LIMITATIONS par junarnoalg
De nombreuses entreprises font le choix de SharePoint Online, service fourni au travers de l'offre de Microsoft Office 365. S'il est vrai que ce choix apporte un grand nombre d'avantages; rapidité de mise en œuvre, disponibilité, large couvertu...
Cliquez pour lire la suite de l'article par junarnoalg PRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGEPRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGE par richardc
http://www.c2idotnet.com/articles/presentation-des-api-rest-de-windows-azure-lister-les-comptes-de-storage
Désolé pour "toto", mais c2i existait avant blogs.developpeur.org et c'est mon site "officiel" ;-) ...
Cliquez pour lire la suite de l'article par richardc
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|