2008-09-29 21 views
11

我可以遵循的设计多线程服务器的任何模板/模式/指南吗?我无法通过我的谷歌搜索在网上找到任何非常有用的东西。C中多线程网络服务器的模式#

我的程序将启动一个线程来侦听使用TcpListener的连接。每个客户端连接都将由它自己的IClientHandler线程处理。服务器将clientHandler.HandleClient包装在委托中,调用BeginInvoke,然后不再关心它。

我还需要能够干净地关闭监听线程,这是我没有找到很多在线的检查。

我假设一些混合使用lock/AutoResetEvents/threading magic与异步BeginAceptTcpClient和EndAcceptTcpClient结合在一起会让我在那里,但是当涉及到网络代码时,对我来说这一切都已完成。所以我必须相信,我可以遵循一些模式,并且不会因无数多线程的角落案例而感到困惑。

谢谢。

回答

12

奇怪的是,您可能在计算机科学作业CSC 512 Programming Assignment 4: Multi-Threaded Server With Patterns上找到了一些东西。尽管它是C++ voodoo,但对于可以执行C#的人来说理论是可以理解的。

Altough你可以得到很好的读数上main page整个列表。

+0

这看起来很有帮助。谢谢!看起来我今天会花一些时间阅读。 – 2008-09-29 16:03:26