Forum Clubic

VB Thread erreur

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 :slight_smile:

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 :wink: