public async Task ReceiveAsync(ITcpClient client) { try { ThrowIf.ArgumentIsNull(client, nameof(client)); byte[] buffer = new byte[BufferLength]; INetworkStream networkStream = default; try { networkStream = client.GetStream(); } catch (Exception exception) { if (!Disconnecting) { throw new TcpIpGetStreamFailedException(exception); } } StreamBufferReader2 streamBufferReader = StreamBufferReader2.Create(Identifier, Encoding.ASCII, Convert.ToByte(EndOfLine), SynchronizationContext, OnDataItemReceived); await ReceiveAsync(networkStream, streamBufferReader, buffer).ConfigureAwait(false); } catch (Exception exception) { if (!Disconnecting) { throw new TcpIpReceiveFailedException(exception); } } }