cs_azstar
Messages postés17Date d'inscriptionlundi 30 juillet 2007StatutMembreDernière intervention 3 avril 2009
-
21 juil. 2008 à 18:32
cs_niky
Messages postés168Date d'inscriptionjeudi 28 juin 2001StatutMembreDernière intervention18 octobre 2008
-
21 juil. 2008 à 20:10
Bonjour tt le monde voila je suis un débutant en vb.net sur tt en winsock
et rencontre des problèmes en utilisant les winsockets et j’espère que vous puissez m’aidée
Voila mon problème j’ai une petite application de chat et fait des transmission
et lorsque je vous récupère les information je trouve un problème que je identifie pas
cs_niky
Messages postés168Date d'inscriptionjeudi 28 juin 2001StatutMembreDernière intervention18 octobre 20087 21 juil. 2008 à 20:10
Ton problème vient du fait que Winsock créé un thread pour attendre l'arrivée de données sur ta connexion. L'événement DataArrival ne s'exécute pas dans le même thread que le principal dans lequel ont été créée les composants graphiques.
Depuis le framework 2, tu obtiens en mode Debug une exception lorsque tu tentes d'accéder à un composant graphique en dehors du thread dans lequel il a été instancié.
Tu as 2 solutions :
- Décocher cross-thread exception dans les Exceptions (ça se trouve dans le menu Debug de Visual Studio)... mais ce n'est pas une bonne solution
- Utiliser un délégué qui va s'exécuter dans le thread du composant graphique. Pour faire ça, il faut utiliser la méthode Invoke :
Me.rtb_chat.Invoke(...)