По сути, ваша StartMonitoring
функция должна быть зациклена - вы будете принимать только одного клиента за раз, а затем, как правило, передаете запрос рабочему потоку, а затем возобновляете прием новых соединений. Как написано, как вы сказали, он будет принимать только одного клиента.
Возможно, вы захотите расширить это в соответствии с вашими потребностями при запуске / завершении работы / прекращении работы, но в основном вы ищете StartMonitoring
, чтобы быть более похожим на:
public void StartMonitoring()
{
_isMonitoring = true;
while (_isMonitoring)
Server.BeginAcceptTcpClient(HandleNewClient, null);
}
Обратите внимание, что если _isMonitoring
будет установлен другим потоком, лучше пометить его как volatile
, иначе вы, вероятно, никогда не завершите циклы.