Bonjour,
j’ai ce message d’erreur en utilisant les threads avec VB :
Le thread est en cours d’exécution ou arrêté ; il ne peut pas redémarrer.
En effet le thread est en statut “Stopped”, mais je n’arrive pas à le re-démarrer…
Des idées ?
Merci,
Marco
Je suppose que c’est tout simplement le thread qui a fini ce qu’il avait à faire et qui donc s’est arrêté ? Auquel cas il suffit d’en recréer un…
On pourra peut être t’éclairer un peu plus si tu nous donnes un exemple de code et/ou si tu détailles ton problème
Ce n’est pas un nouveau thread, c’est un thread trd1 existant qui est en statut “Stopped”…
Que je souhaite passer en “Running”…
Private trd1 As New Thread(AddressOf ThreadConn)
Private trd2 As New Thread(AddressOf ThreadData)
Dim Thrdata As [String] = Nothing
Dim Thrconn As [String] = Nothing
Load de la form
trd1.Start()
Sub ThreadConn()
If TcpServer.Pending <> True Then
tcpClientConnect = TcpServer.AcceptTcpClient
Try
stream = tcpClientConnect.GetStream()
trd2.Start()
Catch ex As Exception
End Try
End If
Sub ThreadData()
…
Voici le cycle :
Au démarrage = trd1 est RUNNING, trd2 est UNSTARTED
Action utilisateur (Connexion TELNET) = trd1 est STOPPED, trd2 est RUNNING
Comment repasser le trd1 en RUNNING et trd2 en UNSTARTED (A part couper la tâche ;o))
Merci,
Marco
Quand un thread s’arrête, on ne peut pas le relancer. Donc soit tu fais une boucle infinie pour que le thread ne s’arrête jamais (typiquement : une boucle attendant les connections), soit tu en bloques l’exécution avec un mutex, soit tu en relances un nouveau