2008-09-29 7 views
11

Existe-t-il des modèles/modèles/guides que je peux suivre pour concevoir un serveur multithread? Je ne trouve rien de très utile en ligne grâce à mes recherches google.Modèles de serveur réseau multithread en C#

Mon programme démarrera un thread pour écouter les connexions en utilisant TcpListener. Chaque connexion client sera gérée par son propre thread IClientHandler. Le serveur encapsulera le clientHandler.HandleClient dans un délégué, appellera BeginInvoke, puis fermera le soin de ce problème.

Je dois également être en mesure d'arrêter proprement le fil d'écoute, ce qui est quelque chose que je ne trouve pas beaucoup d'exampes en ligne.

Je suppose qu'un mélange de magie lock/AutoResetEvents/threading combiné avec le BeginAceptTcpClient asynchrone et EndAcceptTcpClient m'y amènera, mais quand il s'agit de code de réseau, pour moi tout a été fait. Donc je dois croire qu'il y a juste un modèle que je peux suivre et ne pas être complètement confus par la myriade de cas de coin multithread que je ne peux jamais sembler parfait.

Merci.

Répondre

12

Assez curieusement, vous pouvez trouver quelque chose sur une tâche d'informatique, CSC 512 Programming Assignment 4: Multi-Threaded Server With Patterns. Bien que ce soit le voodoo C++ mais la théorie est assez compréhensible pour quelqu'un qui peut faire du C#.

Altough vous pouvez obtenir la liste complète des lectures agréables sur le main page.

+0

Cela semble très utile. Merci! On dirait que je vais passer du temps à lire aujourd'hui. –

Questions connexes