private void SignalDataAvailable() { // Dispatch, as TrySetResult will synchronously execute the waiters callback and block our Write. Task.Factory.StartNew(() => _readWaitingForData.TrySetResult(null)); }