C# : Freeze d'une fenetre messenger avec un serveur de socket
airforce92
Messages postés1Date d'inscriptionvendredi 3 juin 2005StatutMembreDernière intervention 3 juin 2005
-
3 juin 2005 à 15:48
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 2014
-
3 juin 2005 à 16:02
Bonjour,
J'essaye de créer un un client "MSN" avec l'aide
- d un serveur de socket "TcpListener
server =
new TcpListener(localAddr,port)"
- de classe graphique permettant de faire des fenetres messenger provenant de http://www.codeproject.com/cs/miscctrl/taskbarnotifier.asp (l'exemple marche tres bien)
Je lance mon serveur de socket dans un Thread, a part, pour qu'il gère les appels réseaux et appel les methodes d'affichage des fenetres messenger. Lors de la reception d'un message réseau , l'appel a l'affichage d'une fenetre messenger freeze. Alors que si j'appel la methode d'affichage d'une fenetre messenger dans le Main(), tout se passe bien. Ci dessous mon code sur le Main.
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 3 juin 2005 à 16:02
moi j'ai géré ça différemment...
en gros :
- 1 Thread qui écoute le réseau
Quand tu réceptionnes un message tu déclenches un évènement dans ta form
- 2 Tu interceptes l'évènement et tu stockes ton message dans une pile (ArrayList)
- 3 Dans le formulaire, place un Timer qui scrute la pile et affiche les messages quand ils existent.
N'oublie pas de mettre un lock lorsque tu accèdes à la pile.