Exemple #1
0
        public async Task TearDown()
        {
            if (_localCts == null)
            {
                return;
            }
            try
            {
                using (_localCts)
                {
                    using (_mergedCts)
                    {
#if !NETFRAMEWORK && !NETSTANDARD2_0
                        await using (_feed.ConfigureAwait(false))
#else
                        using (_feed)
#endif
                        {
                            _localCts.Cancel();
                            _feed.Close();
                            await _consumerTask.ConfigureAwait(false);
                        }
                    }
                }
            }
            finally
            {
                _localCts = null;
            }
        }
Exemple #2
0
 public Task TearDown()
 {
     return(Task.Run(async() =>
     {
         if (_localCts == null)
         {
             return;
         }
         try
         {
             using (_localCts)
             {
                 using (_mergedCts)
                 {
                     using (_feed)
                     {
                         _localCts.Cancel();
                         _feed.Close();
                         await _consumerTask.ConfigureAwait(false);
                     }
                 }
             }
         }
         finally
         {
             _localCts = null;
         }
     }));
 }
Exemple #3
0
 private static Task RunProducers(IReadOnlyList <IProducer <TP> > producers,
                                  PpcBuffer <TP> buffer, CancellationToken token,
                                  CancellationTokenSource tokenSrc)
 {
     return(Task.Run(async() =>
     {
         try
         {
             await new Func <int, CancellationToken, Task>(async(i, t) =>
                                                           await RunProducer(producers[i], buffer, t, tokenSrc).ConfigureAwait(false))
             .WhenAll(producers.Count, token).ConfigureAwait(false);
         }
         finally
         {
             buffer.Close();
         }
     }, CancellationToken.None));
 }