Sobes.tech
Middle

Comment fonctionnent le mot-clé async et l'opérateur await en C#?

sobes.tech IA

Réponse de l'IA

async marque la méthode comme asynchrone, permettant d'utiliser await à l'intérieur. Cela ne rend pas la méthode elle-même asynchrone, mais permet au compilateur de générer une machine à états qui gérera l'exécution.

await est utilisé avant une expression qui retourne Task ou Task<T>. Il suspend l'exécution de la méthode async en cours jusqu'à ce que la tâche attendue soit terminée, sans bloquer le thread d'exécution. Après la fin de la tâche, l'exécution de la méthode reprend après await. Si la tâche retourne un résultat (Task<T>), await retourne ce résultat.

public async Task<int> GetDataAsync()
{
    // Opération asynchrone
    HttpClient client = new HttpClient();
    string result = await client.GetStringAsync("http://example.com"); 

    // L'exécution continue après la fin de GetStringAsync
    // Traitement du résultat
    return result.Length; 
}