Maison > développement back-end > C++ > Quand et comment devez-vous utiliser l'async et attendre en C #?

Quand et comment devez-vous utiliser l'async et attendre en C #?

Linda Hamilton
Libérer: 2025-02-02 18:36:09
original
697 Les gens l'ont consulté

When and How Should You Use Async and Await in C#?

Le synchronisation et la méthode de l'utilisation de et

async await

Comprendre l'async et attendre

En C #,

et

sont des mots clés puissants. Les utiliser n'est pas la même chose que la création de threads d'arrière-plan, car ils utilisent un mécanisme différent appelé machine d'état asynchrone. async await Exemples de détails de code

Analysons les fragments de code fournis pour démontrer la méthode de travail de et

:

async await Explication comportementale

<code class="language-csharp">private async void button1_Click(object sender, EventArgs e)
{
    Task<int> access = DoSomethingAsync();
    // 此处执行与任务无关的逻辑

    int a = 1; // 立即执行,因为它不依赖于 DoSomethingAsync()

    int x = await access; // 等待 DoSomethingAsync() 完成
}

async Task<int> DoSomethingAsync()
{
    await Task.Delay(5000); // 使线程休眠 5 秒
    return 1;
}</code>
Copier après la connexion

La méthode est marquée comme pour activer son exécution asynchrone.

    est une tâche asynchrone qui ne bloquera pas le thread principal.
  1. button1_Click Lors de l'exécution en arrière-plan, vous pouvez effectuer une logique indépendante. async
  2. provoquera l'exécution de
  3. jusqu'à ce que DoSomethingAsync() soit terminé.
  4. Une fois terminé, le thread principal reprendra l'exécution et attribuera les résultats de DoSomethingAsync() à
  5. .
  6. await access; button1_Click DoSomethingAsync() et
  7. Le mécanisme
  8. DoSomethingAsync() await Lors de l'utilisation de et x, le compilateur génère une machine à états asynchrones. Le montage et la récupération de cette tâche de gestion de la machine d'État permet aux opérations asynchrones d'écrire et d'effectuer des opérations asynchrones de manière simplifiée.
Async et Await's Adfantages

async await Améliorer la lisibilité du code

Empêcher le thread principal du bloc

async Amélioration de la capacité de réponse de l'interface utilisateur await

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal