Form + multithreading

aminert2100 Messages postés 82 Date d'inscription dimanche 15 juin 2003 Statut Membre Dernière intervention 8 mai 2008 - 21 juin 2007 à 14:10
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 !!

3 réponses

Zoso9 Messages postés 10 Date d'inscription dimanche 11 décembre 2005 Statut Membre Dernière intervention 21 juin 2007
21 juin 2007 à 15:08
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 ^^
0
the_wwt Messages postés 177 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 16 janvier 2009 1
21 juin 2007 à 16:45
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
0
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
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 !!! 

@++
0