有没有我可以遵循的模板/模式/指南来设计多线程服务器?通过我的谷歌搜索,我在网上找不到任何非常有用的东西。
我的程序将使用 TcpListener 启动一个线程来监听连接。每个客户端连接都将由它自己的 IClientHandler 线程处理。服务器会将 clientHandler.HandleClient 包装在一个委托中,调用 BeginInvoke,然后不再关心它。
我还需要能够干净地关闭监听线程,这是我在网上找不到很多例子的东西。
我假设 lock/AutoResetEvents/threading 魔术与 async BeginAceptTcpClient 和 EndAcceptTcpClient 的结合将使我到达那里,但是当涉及到网络代码时,对我来说一切都已经完成了。所以我必须相信我可以遵循一些模式,而不会被无数多线程的极端案例完全混淆,我似乎永远无法做到完美。
谢谢。