Avatar ·

async/await : quand retourner Task et quand void en C# ?

Bonjour, collègues ! J'ai commencé à étudier la programmation asynchrone en C# et je suis tombé sur une incompréhension. J'utilise .NET 4.5, j'écris une application WPF. Quand je rends une méthode asynchrone avec le mot-clé async, je ne comprends pas toujours quel type de retour choisir : Task ou void ? Par exemple, j'ai un bouton qui charge des données : ```csharp private async void Button_Click(object sender, RoutedEventArgs e) { await LoadDataAsync(); } ``` Ça semble fonctionner. Mais j'ai vu que dans certains exemples, on écrit `async Task` au lieu de `async void`. Quelle est la différence ? Et pourquoi le compilateur se plaint parfois si j'essaie de faire une méthode `async void` qui n'est pas un gestionnaire d'événement ? J'ai aussi essayé de faire une méthode qui attend simplement : ```csharp public async void WaitAndLog() { await Task.Delay( ```