コード例 #1
0
 private void OnClientDisconnected(Task obj, MessagingListenerClient client)
 {
     lock (_clients)
     {
         _clients.Remove(client);
     }
 }
コード例 #2
0
        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);
                }
            }
        }