private void OnClientDisconnected(Task obj, MessagingListenerClient client) { lock (_clients) { _clients.Remove(client); } }
public async Task Run(CancellationToken token) { _tcpListener.Start(); while (!token.IsCancellationRequested) { var socket = await _tcpListener.AcceptSocketAsync(); var newClient = new MessagingListenerClient(socket, _messageHandlerInvoker); #pragma warning disable 4014 newClient.Run(token).ContinueWith(x => OnClientDisconnected(x, newClient)); #pragma warning restore 4014 lock (_clients) { _clients.AddLast(newClient); } } }