2008-09-29 81 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