2009-08-12 12 views
-1

J'ai fait un jeu dans VB .Net qui utilise tcp et envoie des messages dans les deux sens. Qu'est-ce qui se passe est, de temps en temps, le message ne peut pas être envoyé assez rapidement, alors la méthode TCPObj.connect() va dans une boucle, jusqu'à ce qu'il atteigne le délai, puis crache une erreur. Cependant, la plupart du temps, il n'y a jamais d'erreur, mon application se fige, puis revient après TCPObj.connect(). Comment puis-je faire la méthode connect() faire application.doevents pendant qu'il essaie de se connecter? Fondamentalement, je ne veux pas qu'il gèle toute mon application. Puisque tcp.connect() est une méthode .NET, je ne peux pas entrer et ajouter application.doevents.TCP Freezing avec VB.NET

Répondre

1

Exécutez votre code de connectivité TCP sur un thread distinct. Vous pouvez utiliser une file d'attente pour stocker les événements à envoyer à partir de votre interface utilisateur et faire en sorte que le thread séparé les récupère et les traite.

0

Mettez la connexion au TCP dans un autre thread. Vous pouvez utiliser le rappel Async pour revenir au thread principal. Si elle a des erreurs sur l'autre thread à cause des délais, vous pouvez y faire face ou sur le thread principal.