Opération inter-threads non valide [Résolu]

toufou2006 90 Messages postés jeudi 6 avril 2006Date d'inscription 17 février 2014 Dernière intervention - 30 oct. 2009 à 15:57 - Dernière réponse : toufou2006 90 Messages postés jeudi 6 avril 2006Date d'inscription 17 février 2014 Dernière intervention
- 2 nov. 2009 à 18:59
Bonjour

voici mon erreur, pouvez vous me dire comment la contourner ou al resoudre ?

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

label1 est creer dans l ide et cette operation arrive quand le reseau essaie de se connecter , et au moment ou j essaie de changer le contenu de label1

la c est au moment ou il refuse la connection
j essaie d adapter un code source trouver sur le site
il y a le cleint et le serveur dans al meme page, je veux le differencier
avec une appli client et la utre serveur
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
NHenry 14272 Messages postés vendredi 14 mars 2003Date d'inscription 15 octobre 2018 Dernière intervention - 1 nov. 2009 à 21:24
3
Merci
Bonjour,

Pour agir d'un thread à partir d'un autre, pour accéder à un élément d'une form, il faut utiliser les méthodes :
InvokeRequired (pour savoir s'il faut appeler ...
Invoke (pour lancer un appel vers le thread principal).

Merci NHenry 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

Commenter la réponse de NHenry
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 2 nov. 2009 à 16:23
1
Merci
Salut,

Effectivement, tous les composants winform sont instanciés dans le thread pricipal de l'application, ainsi si tu utilise un autre thread (comme c'est le cas pour la classe socket par exemple), tu ne peux d'une procédure de la classe du second thread, appeler une méthode ou une propriété d'une classe d'un autre thread directement, En gros: c'est une protection (apparue avec le framework 2.0 me semble-t-il ?) pour limité les renvois entre deux thread qui pouraient freezer l'application.

La méthode de NHenry est donc la bonne réponse.

Une autre méthode consiste à implémenter ISynchronizeInvoke dans ta classe (celle du second thread), pour éviter d'avoir à saisir les InvokeRequired/Invoke dans chaque procédures événementielles.

++ Mayzz.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Commenter la réponse de Mayzz
toufou2006 90 Messages postés jeudi 6 avril 2006Date d'inscription 17 février 2014 Dernière intervention - 2 nov. 2009 à 18:59
1
Merci
salut mega merci :) ^^

donc, je resume :) ^^

ma classe winform (donc ma page vb) creee une procedure , :) ^^
ensuite, en appelant les sockets :) ^^ je genere une 2e procedure
qui sont toutes 2 bien distinctes et ne peuvent pas communiquer ensemble

apres il existe des ptits mots doux qui permettent de rapprocher ses 2 mechantes ;) , c ets bien ca ?

Avant de vous embeter, je vais chercher un peu comment on utilise les ptits mots doux :) ^^

InvokeRequired & Invoke
j ai bien tout compris ?

Merci encore à vous :) ^^
Commenter la réponse de toufou2006
NHenry 14272 Messages postés vendredi 14 mars 2003Date d'inscription 15 octobre 2018 Dernière intervention - 1 nov. 2009 à 19:01
Commenter la réponse de NHenry
toufou2006 90 Messages postés jeudi 6 avril 2006Date d'inscription 17 février 2014 Dernière intervention - 1 nov. 2009 à 20:22
0
Merci
salut alors on va reprendre :) ^^
c est quoi un threads, en francais, en simple comme si tu devas l expliquer a un gosse de 8 ans

Merci
Commenter la réponse de toufou2006
toufou2006 90 Messages postés jeudi 6 avril 2006Date d'inscription 17 février 2014 Dernière intervention - 1 nov. 2009 à 21:05
0
Merci
merci :) ^^

ok, j ai compris donc qu il s agit en TRES gros de 2 taches simultanées lancées par la meme application c est ca ?

Si oui comment passer de l un a l autre ?
c es possible un peu ou pas du tout ?

Suis toujours dans el flou :) ^^
Commenter la réponse de toufou2006
toufou2006 90 Messages postés jeudi 6 avril 2006Date d'inscription 17 février 2014 Dernière intervention - 2 nov. 2009 à 11:00
0
Merci
Hello :) ^^^

je te remercie pour ta patience :) ^^
je vois ca ce soir :) ^^
Commenter la réponse de toufou2006
NHenry 14272 Messages postés vendredi 14 mars 2003Date d'inscription 15 octobre 2018 Dernière intervention - 1 nov. 2009 à 20:43
-3
Merci
Bonjour,

Déjà, tu peux voir sur [url]http://fr.wikipedia.org/wiki/Processus_l%C3%A9ger/url

Il s'agit simplement d'un fil d'execution parallèle à ton programme, mais dans le même environnement.

Commenter la réponse de NHenry

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.