private void RunBackgroundThread(StatsFetchingService fetchingService)
        {
            this.cancellationTokenSource = new CancellationTokenSource();

            this.backgroundThread = Task.Factory
                                    .StartNew(
                () => FetchFortniteStats(fetchingService, this.cancellationTokenSource.Token),
                this.cancellationTokenSource.Token
                );
        }
        private void FetchFortniteStats(StatsFetchingService fetchingService, CancellationToken cancellationToken)
        {
            while (true)
            {
                cancellationToken.ThrowIfCancellationRequested();

                var stats = fetchingService.GetStats();

                this.OnStatsUpdated(stats);
            }
        }
 public void Start(StatsFetchingService fetchingService)
 {
     this.RunBackgroundThread(fetchingService);
 }