Patrones para el servidor de red multiproceso en C #

¿Hay alguna plantilla / patrón / guía que pueda seguir para diseñar un servidor multiproceso? No puedo encontrar nada terriblemente útil en línea a través de mis búsquedas en Google.

Mi programa iniciará un hilo para escuchar las conexiones utilizando TcpListener. Cada conexión de cliente será manejada por su propio hilo IClientHandler. El servidor envolverá el clientHandler.HandleClient en un delegado, llamará a BeginInvoke y luego dejará de preocuparse por ello.

También necesito poder cerrar de manera limpia el hilo de escucha, que es algo que no encuentro muchos ejemplos en línea.

Supongo que una combinación de lock / AutoResetEvents / threading magic combinada con el async BeginAceptTcpClient y EndAcceptTcpClient me llevará hasta allí, pero en lo que respecta al código de red, para mí todo está hecho. Así que tengo que creer que solo hay un patrón que puedo seguir y que no me confundo totalmente con la gran cantidad de casos de esquinas de múltiples hilos que parece que nunca puedo perfeccionar.

Gracias.

Respuestas a la pregunta(2)

Su respuesta a la pregunta