protected async Task <string> ReadLineAsync(bool throwOnEmptyMessage = true) { ConfiguredTaskAwaitable <string>?readLineAwaitable = ClientReader?.ReadLineAsync().ConfigureAwait(false); string message = readLineAwaitable.HasValue ? await readLineAwaitable.Value : null; if (message != null) { return(message); } DisconnectForced("Empty message received from server."); if (throwOnEmptyMessage) { throw new InvalidOperationException("Received no message. Socket got disconnected."); } return(null); }