Maison >développement back-end >C++ >Retour attendre par rapport à la tâche directe Retour: quand est-ce important?
et renvoie directement return await
Task<T>
Dans la programmation asynchrone, le choix de et le retour directement
return await
Task<T>
Les avantages de
Cette différence subtile mais importante est apparue dans return await
dans les blocs . Considérez l'exemple suivant:
Dans cet exemple, si try
est une opération asynchrone qui s'exécute pendant longtemps, l'instruction using
libérera return await
immédiatement après
<code class="language-csharp">Task<someresult> DoSomethingAsync() { using (var foo = new Foo()) { return foo.DoAnotherThingAsync(); } }</code>
Au contraire, l'utilisation de foo.DoAnotherThingAsync()
dans la méthode asynchrone est différente: using
DoAnotherThingAsync()
foo
Dans ce cas, les mots clés DoAnotherThingAsync()
garantissent que les opérations asynchrones sont terminées avant
. Ce comportement est conforme à la fonction attendue et empêche les erreurs potentielles. return await
<code class="language-csharp">async Task<someresult> DoSomethingAsync() { using (var foo = new Foo()) { return await foo.DoAnotherThingAsync(); } }</code>
await
Bien que using
soit suffisant pour revenir directement dans la plupart des cas, lorsque le bloc foo
est utilisé dans le bloc
fournit un avantage clé. En garantissant la bonne libération des ressources, aident à maintenir l'intégrité du code et à prévenir les accidents.
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!