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.
public async Task MyMethodAsync() { Task<int> longRunningTask = LongRunningOperationAsync(); // 这里可以执行其他独立的工作 int result = await longRunningTask; // 这里使用result } public async Task<int> LongRunningOperationAsync() { await Task.Delay(1000); return 1; }
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!