Thread blem... [Résolu]

Signaler
Messages postés
96
Date d'inscription
mardi 15 mai 2007
Statut
Membre
Dernière intervention
29 janvier 2009
-
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
-
Bonjour,

j'ai ce message d'erreur :

Opération inter-threads non valide : le contrôle 'LblThread' a fait l'objet d'un accès à partir d'un thread autre que
celui sur lequel il a été créé

Des idées ?

Marco

7 réponses

Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
>> Comment repasser le trd1 en RUNNING et trd2 en UNSTARTED (A part couper la tâche ;o))
Vérifie l'état de tes threads si ils ne sont pas suspendus ou en cours d'execution puis redéfinit une nouvelle instance du thread que tu as à "relancer".

++
Messages postés
96
Date d'inscription
mardi 15 mai 2007
Statut
Membre
Dernière intervention
29 janvier 2009

Solution : boucles pour les deux threads ;o)

Do
.
...
....
Loop

Merci,
Marco
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
Bonjour,
Le contrôle LblThread a été crée dans le thread principal.
Hors tu veux modifier une de ses propriétés (j'imagine .Text) à partir d'un autre thread  !
Passe par les délégués si tu veux modifier tes contrôles !
Regarde par ici http://www.vbfrance.com/forum/sujet-MODIFICATION-TEXTBOX-PARTIR-AUTRE-THREAD_902539.aspx :)

++
Messages postés
96
Date d'inscription
mardi 15 mai 2007
Statut
Membre
Dernière intervention
29 janvier 2009

Ok,

depuis j'ai une autre erreur :

Le thread est en cours d'exécution ou arrêté ; il ne peut pas redémarrer.

Le thread est en statut "Stopped", mais je n'arrive pas à le re-démarrer... Des idées ?

Merci,
Marco
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
Comment démarres-tu ton nouveau thread ? Comment s'arrête t-il ? Peux-tu fournir le bout de code que tu utilises stp.
Messages postés
96
Date d'inscription
mardi 15 mai 2007
Statut
Membre
Dernière intervention
29 janvier 2009

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
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
Comment sa boucles pour les 2 threads ? Tu gardes tes threads ouverts par l'intermèdiaire de boucles à l'intérieur ?