private async Task queueRecentMatchPages(string gamertag, int pages) { _logger.LogInformation($"Queueing {gamertag}'s recent matches"); var queueMessages = new QueueEvent[pages]; for (var i = 0; i < pages; i++) { queueMessages[i] = new QueueEvent { Type = QueueEventTypes.CacheRecentMatches, Payload = new MatchHistoryPayload { Gamertag = gamertag, Page = i + 1, }, }; } var tasks = new List <Task>(); var chunkyChunks = queueMessages.Split(10); foreach (var chunk in chunkyChunks) { tasks.Add(_sqsClient.SendMessageBatchAsync(chunk)); } _logger.LogInformation($"{gamertag} has {pages} pages of recent matches over {tasks.Count} tasks"); await Task.WhenAll(tasks.ToArray()); }