Maison >développement back-end >C++ >Comment «Async» et «Await» simplifient-ils la programmation asynchrone en 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
async
par rapport au thread d'arrière-plan await
不同于独立执行的传统后台线程,和利用编译器在后台生成的
状态机。该状态机跟踪异步操作的进度,允许主线程在后台操作完成时继续执行。 async
await
Exemple de détails
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
La décomposition des fonctions int a = 1;
await
await
Les exemples suivants démontrent en outre le processus d'exécution en utilisant
:
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
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!