aminert2100
Messages postés82Date d'inscriptiondimanche 15 juin 2003StatutMembreDernière intervention 8 mai 2008
-
21 juin 2007 à 14:10
aminert2100
Messages postés82Date d'inscriptiondimanche 15 juin 2003StatutMembreDerniè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 !!!
Zoso9
Messages postés10Date d'inscriptiondimanche 11 décembre 2005StatutMembreDernière intervention21 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 ^^
the_wwt
Messages postés177Date d'inscriptionjeudi 5 octobre 2006StatutMembreDernière intervention16 janvier 20091 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