public async Task Execute(CancellationToken cancellationToken, IProgress <double> progress) { var gravatarManager = new GravatarManager(_providerManager, _logger); var users = _userManager.Users.ToList(); var percentPerUser = 100 / users.Count; var numComplete = 0; double currentProgress = 0; foreach (var user in users) { await gravatarManager.Post(user, CancellationToken.None).ConfigureAwait(false); numComplete++; currentProgress = percentPerUser * numComplete; progress.Report(currentProgress); } }