Esempio n. 1
0
        public void Start()
        {
            var unused1 = ReceiveRunner <TPacket> .RunReceiveAsync(_stream, _bufferManager, OnPacketsReceived,
                                                                   _canncelSource.Token);

            var unused2 = unused1.ContinueWith(tsk => Dispose());
        }
Esempio n. 2
0
        public async Task StartAsync()
        {
            try
            {
                await _connectLock.WaitAsync();

                if (_connected)
                {
                    return;
                }

                _client = new TcpClient();
                await _client.ConnectAsync(_host, _port);

                _disposed  = false;
                _connected = true;
                try
                {
                    Connected?.Invoke(this, new EventArgs());
                }
                catch (Exception)
                {
                    //ignore
                }
                _stream        = _client.GetStream();
                _canncelSource = new CancellationTokenSource();

                var unused1 = ReceiveRunner <TPacket> .RunReceiveAsync(_stream, _bufferManager, OnPacketsReceived,
                                                                       _canncelSource.Token);

                var unused2 = unused1.ContinueWith(tsk => Dispose());
            }
            finally
            {
                _connectLock.Release();
            }
        }