Maison >développement back-end >C++ >C# | Programmation asynchrone avec [async | attendre | Tâche]

C# | Programmation asynchrone avec [async | attendre | Tâche]

WBOY
WBOYoriginal
2024-07-23 21:49:44915parcourir

C# | Asynchronous programming with [async | await | Task]

Note
You can check other posts on my personal website: https://hbolajraf.net

Utilisation des tâches wait et async en C

En C#, la programmation asynchrone est utilisée pour améliorer la réactivité des applications en permettant aux tâches de s'exécuter simultanément sans bloquer le thread principal. Les mots-clés wait et async jouent un rôle crucial pour y parvenir. Ce guide vous montrera comment utiliser efficacement les tâches d'attente et asynchrone.

Introduction

La programmation asynchrone en C# est essentielle pour les tâches qui peuvent prendre beaucoup de temps, telles que les opérations liées aux E/S ou les requêtes réseau. En utilisant wait et async, vous pouvez vous assurer que votre application reste réactive en attendant la fin de ces tâches.

Utilisation d'une tâche asynchrone

  1. Définir une méthode asynchrone : pour utiliser wait, définissez une méthode asynchrone au sein d'une classe, renvoyant généralement une tâche ou une tâche.
   public async Task MyAsyncMethod()
   {
       // Asynchronous code here
   }
  1. Appelez la méthode asynchrone : Dans une autre méthode, vous pouvez appeler votre méthode asynchrone avec le mot-clé wait.
   await MyAsyncMethod();

Le mot-clé d'attente

Le mot-clé wait est utilisé dans une méthode asynchrone pour suspendre l'exécution jusqu'à ce que la tâche attendue soit terminée. Cela permet au fil appelant de continuer d'autres travaux sans bloquer.

async Task MyAsyncMethod()
{
    var result = await SomeAsyncTask();
    // Code after the await will execute when SomeAsyncTask is completed.
}

Gestion des exceptions

Pour gérer les exceptions dans les méthodes asynchrones, vous pouvez utiliser des blocs try-catch standard. Lorsqu'une exception est levée dans une méthode asynchrone, elle est capturée et propagée dans le cadre de la tâche.

try
{
    await SomeAsyncMethod();
}
catch (Exception ex)
{
    // Handle the exception
}

Jetons d'annulation

Pour annuler une opération asynchrone, vous pouvez utiliser CancellationToken. Transmettez un CancellationToken à la méthode asynchrone et vérifiez l’annulation au sein de la méthode.

async Task MyAsyncMethod(CancellationToken cancellationToken)
{
    // Check for cancellation
    cancellationToken.ThrowIfCancellationRequested();

    // Continue with the operation
}

Exemple concret

Voici un exemple de scénario réel courant : effectuer une requête HTTP de manière asynchrone.

public async Task<string> FetchDataAsync(string url)
{
    using (var httpClient = new HttpClient())
    {
        var response = await httpClient.GetAsync(url);
        response.EnsureSuccessStatusCode();
        return await response.Content.ReadAsStringAsync();
    }
}

Et ensuite ?

L'utilisation de wait et async Task en C# vous permet d'écrire des applications réactives et efficaces, en particulier lorsqu'il s'agit de tâches liées aux E/S ou de longue durée. Il vous permet de garder votre application réactive et d'améliorer l'expérience utilisateur globale en permettant à plusieurs tâches de s'exécuter simultanément sans bloquer le thread principal.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:C# | Meilleures pratiquesArticle suivant:C# | Meilleures pratiques