예제 #1
0
            public async void Execute()
            {
                Debug.Assert(_connection != null);
                if (!_server._listening)
                {
                    _connection.Close();
                    _connection = null;
                    _socket     = null;
                    return;
                }

                try
                {
                    await _server.Handler.HandleAsync(_connection);
                }
                catch (Exception ex)
                {
                    Trace.WriteLine(ex, "UnobservedException");
                }
                finally
                {
                    _connection.Close();
                    _connection = null;
                    _socket     = null;
                    if (_server._listening)
                    {
                        _receiveArgs.CleanUp();
                        _sendArgs.CleanUp();
                        try
                        {
                            Accept();
                        }
                        catch (Exception ex)
                        {
                            Trace.WriteLine(ex, "UnobservedException");
                        }
                    }
                }
            }