Considère ceci,
Task task = new Task (async () =>{
await TaskEx.Delay(1000);
});
task.Start();
task.Wait();
L'appel task.Wait () n'attend pas l'achèvement de la tâche et la ligne suivante est exécutée immédiatement, mais si j'emballe l'expression lambda asynchrone dans un appel de méthode, le code fonctionne comme prévu.
private static async Task AwaitableMethod()
{
await TaskEx.Delay(1000);
}
then (mis à jour en fonction du commentaire de svick)
await AwaitableMethod();