我可以遵循设计多线程服务器的模板/模式/指南吗?我通过谷歌搜索在网上找不到任何非常有用的东西.
我的程序将启动一个线程来使用TcpListener监听连接.每个客户端连接都将由它自己的IClientHandler线程处理.服务器将clientHandler.HandleClient包装在委托中,调用BeginInvoke,然后退出关心它.
我还需要能够干净地关闭监听线程,这是我没有找到很多在线的例子.
我假设将一些lock/AutoResetEvents/threading魔法与async BeginAceptTcpClient和EndAcceptTcpClient混合在一起会让我在那里,但是当谈到网络代码时,对我而言,这一切都已完成.所以我不得不相信只有一些模式我可以遵循并且不会被无数的多线程角落情况完全混淆,我似乎永远无法完美.
谢谢.
奇怪的是,你可能会在计算机科学作业,CSC 512编程作业4:带模式的多线程服务器上找到一些东西.尽管这是C++伏都教,但对于能够做C#的人来说这个理论是完全可以理解的.
接受器/连接器
监控对象
线程安全接口
包装外观
Scoped Locking
战略锁定
反应堆
半同步/半异步
领导者/追随者
尽管如此,您还可以在主页面上获得完整的阅读清单.