"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Async/espera en c#: ¿volver directamente a la tarea o esperar?

Async/espera en c#: ¿volver directamente a la tarea o esperar?

Publicado el 2025-04-29
Navegar:679

Async/Await in C#: Return Task Directly or Await?

de devolver vs. a la espera al final de un método async

en un método async que devuelve una tarea, tiene dos opciones para manejar las llamadas de async posteriores:

[&]

opción a: devolver la tarea Directamente

tarea fooasync () { return bazasync (); }
Task FooAsync()
{
    return BazAsync();
}

opción B: espera la tarea y return

async tarea barasync () { espera Bazasync (); }
Task FooAsync()
{
    return BazAsync();
}

Esta opción es adecuada si su método realiza una pequeña cantidad de trabajo sincrónico y luego llama a un solo método async.

consecuencias de la opción B (await y return)
  • la ventaja: asíncronamente.
  • disadvantage: más código verboso y crea una tarea adicional.
Esta opción es preferible si:

debe realizar operaciones adicionales adicionales después de llamar a Bazasync (). Excepciones planteadas en el método asíncrono asincrónico.

nota:
    No puede devolver una tarea directamente si el método en sí se declara async. Esto daría como resultado un tipo de retorno de Tarea , que no está permitido.
  • En resumen, la decisión entre regresar directamente o esperar depende de las necesidades específicas de su método. Considere la estructura del código, el potencial de excepciones y el comportamiento deseado de su aplicación al tomar esta elección.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3