diff --git a/guide/english/csharp/async-await/index.md b/guide/english/csharp/async-await/index.md index fa349ee99d..6d0266a26e 100644 --- a/guide/english/csharp/async-await/index.md +++ b/guide/english/csharp/async-await/index.md @@ -41,20 +41,25 @@ public async Task CalcDamage(Player player) // Boss based on the damage types, Boss stats (from static data), // player stats, etc. // ... + await Task.Delay(1000); // extemely time consuming calculation + return 3; // that calculates a very accurate damage thats not hardcoded at all } -public static async Task CalcTotalDamage(IEnumerable group) +public async Task CalcTotalDamage(IEnumerable players) { - var totalDamage = 0; - foreach (Player player in group) + var tasks = new List>(); + foreach (Player player in players) { // each of the async methods are queued in the thread-pool and move on. - totalDamage += CalcDamage(player); + var t = CalcDamage(player); + // storing reference to the task + tasks.Add(t); } // total damage done must be calculated from all players in the group // before we return the result. - return await Task.WhenAll(totalDamage); + var completeTask = await Task.WhenAll(tasks); + return completeTask.Sum(); } ```