Exécution constante d'un script de serveur TCP, mais avec une faible utilisation du processeur

StackOverflow https://stackoverflow.com/questions/1416776

  •  06-07-2019
  •  | 
  •  

Question

J'utilise un programme de style serveur / client et utilise des connexions TCP.

Maintenant, le serveur est comme this , mais il ne l'écoutera que jusqu'à ce qu'il le soit a reçu sa seule demande. Mon problème réside dans le fait qu'il n'écoute que jusqu'à ce qu'il reçoive un message, puis se ferme. Le plus gros problème, cependant, est le décalage. Cela ne me laissera pas interagir avec le formulaire de quelque manière que ce soit tant qu'il n'aura pas fermé la connexion. Existe-t-il un moyen de le rendre "passivement"? écoute, faute d'un meilleur mot? Je ne veux pas que cela prenne des tonnes de CPU.

Merci pour l'aide!

Ceci est dans vb.net.

Était-ce utile?

La solution

Sous Windows, les événements tels que les appuis sur les touches, les clics et mouvements de souris, etc., sont envoyés en tant qu’événements (messages) à un thread dédié à leur traitement. Si le traitement de ce message prend beaucoup de temps (par exemple, lorsqu’il attend une requête TCP), il est dit qu'il "bloque" jusqu'à la fin de cette tâche, bloquant essentiellement toute votre interface utilisateur.

Vous souhaitez configurer un thread distinct de celui qui exécute votre formulaire pour gérer l'écoute TCP. Ce tutoriel sur le threading dans Vb.Net devrait vous guider dans la bonne direction.

Autres conseils

Consultez le TcpListener classe, vérifiez également le code affiché pour le Méthode en attente .

Vous feriez mieux d'utiliser des threads pour gérer tout cela, car vous voulez que votre thread d'interface utilisateur reste disponible pour que votre interface reste sensible.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top