Form + multithreading

Messages postés
82
Date d'inscription
dimanche 15 juin 2003
Statut
Membre
Dernière intervention
8 mai 2008
- - Dernière réponse : aminert2100
Messages postés
82
Date d'inscription
dimanche 15 juin 2003
Statut
Membre
Dernière intervention
8 mai 2008
- 21 juin 2007 à 22:49
Salut,


J’ai un problème concernant le multithreading sous C#.NET
2005, j’ai essayé de chercher une solution dans le web mais sans résultat.


En effet je veux crée une application de messagerie
instantané de style Skype ou MSN. Alors j’ai besoin d’un thread qui fait
l’écoute de port avec la classe TcpListener, et à chaque demande de connexion
le thread doit lancer une nouvelle instance d’une fenêtre (CahtForm) nécessaire
pour l’échange des messages entre le deux client. De point de vu code tous va
bien (sans erreurs) mais lorsque un client demande la connexion la fenêtre
(ChatForm) se lance mais elle se bloque de façon que l’utilisateur ne peut rien
faire car il voit une fenêtre blanche sur son écran !!! Je sais pas quoi faire
pour remédier à se problème !!!


Voici un peu le code du thread utilisé :



private

void Start()






        {






           
try







            {






               
MyTcpListener = newTcpListener(MyAdress,port);






               
MyTcpListener.Start();






            
   
while (true)






               

{






                     

MyTemTcpClient = MyTcpListener.AcceptTcpClient();









 







                     
ChatForm
MyChatForm = newChatForm();






                 
   
MyChatForm.Client=MyTemTcpClient ;






  
              
    MyChatForm.Show() ;






                 








                }






            }






           
catch
{ MessageBox.Show("Impossible
de démarrer le serveur"); }






        }





 




J’attends vos réponses si non vos clarifications et vos
remarques constrictives !!!


Merci d’avance pour votre aide !!!



 
            Que vive le multithreading !!
Afficher la suite 

3 réponses

Messages postés
10
Date d'inscription
dimanche 11 décembre 2005
Statut
Membre
Dernière intervention
21 juin 2007
0
Merci
j'ai le même probleme, je pense que si tu utilise MyChatForm.ShowDialog() au lieu de MyChatForm.Show(), ca ira mais tu ne pourras avoir qu'une fenêtre ouverte à la foi. si tu trouves une solution, je suis preneur ^^
Commenter la réponse de Zoso9
Messages postés
177
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
16 janvier 2009
1
0
Merci
Bonjour,
à première vue si c'est comme dans tous les langage,
il te faut un thread pour l'affichage et un autre pour le traitement.
La je pense que ta ChatForm est géré dans le thread du listening...
Ainsi tu es bloqué par la fonction AcceptTcpClient.... Qui empêche à la forme de se dessinner...
Me trompai-je?
cdlt,
Pierrick
Commenter la réponse de the_wwt
Messages postés
82
Date d'inscription
dimanche 15 juin 2003
Statut
Membre
Dernière intervention
8 mai 2008
0
Merci
Slaut,
en effet j'ai crée un  envent qui se déclanche lors de connexion d'un nouveau client mais la même chose !!! 

@++
Commenter la réponse de aminert2100