Существуют ли какие-либо шаблоны / шаблоны / руководства, которым я могу следовать при разработке многопоточного сервера? Я не могу найти в Интернете ничего ужасно полезного с помощью поиска в Google.
Моя программа запустит поток для прослушивания соединений с помощью TcpListener. Каждое клиентское соединение будет обрабатываться собственным потоком IClientHandler. Сервер заключит clientHandler.HandleClient в делегат, вызовет BeginInvoke, а затем перестанет заботиться об этом.
Мне также нужно иметь возможность полностью отключить поток прослушивания, чего я не нахожу во многих онлайн-экзаменах.
Я предполагаю, что какое-то сочетание магии блокировки / AutoResetEvents / threading в сочетании с async BeginAceptTcpClient и EndAcceptTcpClient приведет меня к этому, но когда дело доходит до сетевого кода, для меня все это было сделано. Так что я должен верить, что есть какой-то шаблон, которому я могу следовать, и не запутаться полностью из-за бесчисленных многопоточных угловых случаев, которые я никогда не смогу достичь совершенства.
Спасибо.





Как ни странно, вы можете найти что-то в Задании по информатике, Задание 4 для программирования CSC 512: многопоточный сервер с шаблонами. Хотя это вуду на C++, но теория вполне понятна для тех, кто умеет писать на C#.
Хотя вы можете получить весь список хороших показаний на Главная страница.
Взгляните на этот предыдущий вопрос:
Как минимизировать количество потоков, используемых в приложении сервера TCP?
Это не строго специфично для C#, но дает несколько полезных советов.
Это кажется очень полезным. Спасибо! Похоже, я сегодня немного почитаю.