예제 #1
0
 public async ValueTask DisposeAsync()
 {
     try
     {
         await Current.ConfigureAwait(false);
     }
     finally
     {
         await _observer.DisposeAsync().ConfigureAwait(false);
     }
 }
예제 #2
0
 public async ValueTask SubscribeAsync(IAsyncObserver <T> observer, CancellationToken token)
 {
     try
     {
         await observer.OnNextAsync(_value).ConfigureAwait(false);
     }
     finally
     {
         await observer.DisposeAsync().ConfigureAwait(false);
     }
 }
예제 #3
0
 public async ValueTask DisposeAsync()
 {
     try
     {
         _writer.Complete();
         await ReaderTask.ConfigureAwait(false);
     }
     finally
     {
         await _observer.DisposeAsync().ConfigureAwait(false);
     }
 }
예제 #4
0
            public async ValueTask SubscribeAsync(IAsyncObserver <T> observer, CancellationToken token)
            {
                var obs = default(IAsyncObservable <T>);

                try
                {
                    obs = await _factory().ConfigureAwait(false);
                }
                catch
                {
                    await observer.DisposeAsync().ConfigureAwait(false);

                    throw;
                }

                await obs.SubscribeAsync(observer, token).ConfigureAwait(false);
            }
예제 #5
0
        public async ValueTask SubscribeAsync(IAsyncObserver <int> observer, CancellationToken token)
        {
            try
            {
                for (int i = _start; i < _end; i++)
                {
                    token.ThrowIfCancellationRequested();

                    var keep = await observer.OnNextAsync(i).ConfigureAwait(false);

                    if (!keep)
                    {
                        break;
                    }
                }
            }
            finally
            {
                await observer.DisposeAsync().ConfigureAwait(false);
            }
        }
예제 #6
0
        public async ValueTask SubscribeAsync(IAsyncObserver <T> observer, CancellationToken token)
        {
            try
            {
                foreach (var item in _enumerable)
                {
                    token.ThrowIfCancellationRequested();

                    var keep = await observer.OnNextAsync(item).ConfigureAwait(false);

                    if (!keep)
                    {
                        break;
                    }
                }
            }
            finally
            {
                await observer.DisposeAsync().ConfigureAwait(false);
            }
        }
 public ValueTask DisposeAsync() => _observer.DisposeAsync();
예제 #8
0
 public async ValueTask DisposeAsync()
 {
     await _observer.DisposeAsync().ConfigureAwait(false);
 }
예제 #9
0
 public async ValueTask DisposeAsync()
 {
     await _observer.DisposeAsync();
 }
예제 #10
0
 public async ValueTask SubscribeAsync(IAsyncObserver <T> observer, CancellationToken token)
 {
     await observer.DisposeAsync().ConfigureAwait(false);
 }