EasyBike.Models.ContractService.StartRefreshStationsAsync C# (CSharp) Méthode

StartRefreshStationsAsync() private méthode

private StartRefreshStationsAsync ( ) : void
Résultat void
        private async void StartRefreshStationsAsync()
        {
            IsStationWorkerRunning = true;
            while (refreshingPool.Count > 0)
            {
                await Task.Delay(15000).ConfigureAwait(false);
                if (CrossConnectivity.Current.IsConnected)
                {
                    BatchBlock<Station> batchBlock = new BatchBlock<Station>(5);
                    var actionBlock = new ActionBlock<Station[]>(
                       async stations =>
                       {
                           foreach (var station in stations)
                           {
                               if (await station.Contract.RefreshAsync(station))
                               {
                                   if (station.IsUiRefreshNeeded)
                                   {
                                       StationRefreshed?.Invoke(station, EventArgs.Empty);
                                   }
                               }
                           }
                       },
                new ExecutionDataflowBlockOptions
                {
                    MaxDegreeOfParallelism = 5
                });

                    batchBlock.LinkTo(actionBlock, new DataflowLinkOptions { PropagateCompletion = true });


                    foreach (var station in refreshingPool)
                    {
                        await batchBlock.SendAsync(station); // wait synchronously for the block to accept.
                    }

                    batchBlock.Complete();
                    actionBlock.Completion.Wait(15000);

                }

            }
            IsStationWorkerRunning = false;
        }
    }