Genau, wobei asynchrone Methoden wie TcpListener.Begin*, NetworkStream.Begin*, ... den ThreadPool bereits ohne weiteres Zutun benutzen. Wenn also auf 90% Cleints sowieso nur in einer dieser Methoden gewartet wird, werden nur 50-100 Threads benötigt, die dann duch den Pool recycelt werden. Das sollte reichen

.