Wzory dla wielowątkowego serwera sieciowego w C #

Czy są jakieś szablony / wzory / przewodniki, których mogę użyć do projektowania serwera wielowątkowego? W wyszukiwarkach Google nie mogę znaleźć niczego bardzo przydatnego online.

Mój program uruchomi wątek, aby nasłuchiwać połączeń za pomocą TcpListener. Każde połączenie klienta będzie obsługiwane przez własny wątek IClientHandler. Serwer zawinie klienta clientHandler.HandleClient w pełnomocnika, wywołując BeginInvoke, a następnie przestanie się nim zajmować.

Muszę też być w stanie bezproblemowo wyłączyć wątek nasłuchujący, czego nie znalazłem w wielu przykładach online.

Zakładam, że pewna mieszanka lock / AutoResetEvents / threading magic połączona z asynchronizacją BeginAceptTcpClient i EndAcceptTcpClient doprowadzi mnie tam, ale jeśli chodzi o kod sieciowy, dla mnie wszystko zostało zrobione. Muszę więc wierzyć, że istnieje tylko pewien wzór, za którym mogę podążać i nie być całkowicie zdezorientowanym przez niezliczone wielowątkowe przypadki narożne, które nigdy nie wydają mi się doskonałe.

Dzięki.

questionAnswers(2)

yourAnswerToTheQuestion