using System.Threading.Tasks;
using System.Collections.Generic;
public Personne(int id, string firstName, string lastName)
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public override string ToString()
return JsonSerializer.Serialize(this);
public class TaskToRunAsync
Random rand = new Random();
var pause = rand.Next(1500, 3000);
public async Task VerifPersonne(Personne info)
Console.WriteLine($"tâche 'VerifPersonne' valeur du paramètre = {info}");
public async Task VerifAgrement(int info)
Console.WriteLine($"tâche 'VerifAgrement' valeur du paramètre = {info}");
public async Task VerifTelephone(string info)
Console.WriteLine($"tâche 'VerifTelephone' valeur du paramètre = {info}");
public async Task VerifUrl(string info)
Console.WriteLine($"tâche 'VerifUrl' valeur du paramètre = {info}");
public async Task VerifMail(string info)
Console.WriteLine($"tâche 'VerifMail' valeur du paramètre = {info}");
static async Task Main(string[] args)
var t = new TaskToRunAsync();
var t1 = t.VerifAgrement(50);
var t2 = t.VerifTelephone("Téléphone");
var t3 = t.VerifUrl("URL");
var t4 = t.VerifMail("Mail");
var t5 = t.VerifPersonne(new Personne(10, "Jean", "Petit"));
List<Task> listTask = new List<Task>() { t1, t2, t3, t4, t5 };
await ExecuteInParallel(listTask);
private static async Task ExecuteInParallel(List<Task> listTask)
await Task.WhenAll(listTask).ContinueWith((alltasks) =>
if (alltasks.IsCompleted)
Console.WriteLine("\nAll tasks completed");