Maison >développement back-end >C++ >Comment «Async» et «Await» simplifient-ils la programmation asynchrone en C #?

Comment «Async» et «Await» simplifient-ils la programmation asynchrone en C #?

Linda Hamilton
Linda Hamiltonoriginal
2025-02-02 18:52:35251parcourir

How Do `async` and `await` Simplify Asynchronous Programming in C#?

C # Programmation asynchrone

et : Simplifier les opérations asynchrones async await La programmation asynchrone permet au code de s'exécuter simultanément sans bloquer le thread principal. Les mots clés

et simplifient l'écriture et la compréhension des opérations asynchrones.

async par rapport au thread d'arrière-plan await

不同于独立执行的传统后台线程,利用编译器在后台生成的

状态机

。该状态机跟踪异步操作的进度,允许主线程在后台操作完成时继续执行。 async await Exemple de détails

Dans l'exemple,

Button1_Click La méthode est marquée comme , car elle contient un fonctionnement asynchrone Dosomethingasync.当DoSomethingAsync在后台执行时(具体线程取决于线程池配置),UI线程保持响应,用户可以继续与应用程序交互。

Cette ligne de code est terminée après que DosomethingAsync et le thread principal sont exécutés après les résultats de réception de grammaire . Cela signifie que le code après ne sera exécuté qu'après la fin de l'opération asynchrone. async

et

La décomposition des fonctions int a = 1; await await Les exemples suivants démontrent en outre le processus d'exécution en utilisant

et

: async await MyMethodasync commence à exécuter et à démarrer le LongrunningOperationAsync en arrière-plan.

Le thread principal est exécuté indépendamment, tandis que LongrunningOperationAsync est exécuté en arrière-plan. async await Lorsque la LongrunningOperationAsync est terminée, le thread principal reprend et a continué de l'interruption.

<code class="language-csharp">public async Task MyMethodAsync()
{
    Task<int> longRunningTask = LongRunningOperationAsync();
    // 这里可以执行其他独立的工作
    int result = await longRunningTask;
    // 这里使用result
}

public async Task<int> LongRunningOperationAsync()
{
    await Task.Delay(1000);
    return 1;
}</code>
Le résultat du caractère informatique Récupère les résultats du LongrunningOperationAsync et le stockez dans la variable
    .
  1. Le thread principal continue d'exécuter et utilise les résultats obtenus à partir d'opérations asynchrones.

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