public void Start() { var unused1 = ReceiveRunner <TPacket> .RunReceiveAsync(_stream, _bufferManager, OnPacketsReceived, _canncelSource.Token); var unused2 = unused1.ContinueWith(tsk => Dispose()); }
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(); } }