Capítulo 2. Conceptos básicos de Async

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

Este capítulo de te introduce en los fundamentos del uso de async y await para operaciones asíncronas. Aquí sólo trataremos las operaciones naturalmente asíncronas, que son operaciones como solicitudes HTTP, comandos de bases de datos y llamadas a servicios web.

Si tienes una operación que consume mucha CPU y quieres tratarla como si fuera asíncrona (por ejemplo, para que no bloquee el hilo de la interfaz de usuario), consulta el Capítulo 4 y la Receta 8.4. Además, este capítulo sólo trata de operaciones que se inician una vez y se completan una vez; si necesitas manejar flujos de eventos, entonces consulta los Capítulos 3 y6.

2.1 Pausa durante un periodo de tiempo

Problema

En necesitas esperar (asíncronamente) durante un periodo de tiempo. Es un escenario habitual cuando se realizan pruebas unitarias o se implementan retardos de reintento. También surge al codificar tiempos de espera sencillos.

Solución

El tipo Task tiene un método estático Delay que devuelve una tarea que se completa al cabo del tiempo especificado.

El siguiente código de ejemplo define una tarea que se completa de forma asíncrona. Al fingir una operación asíncrona, es importante probar el éxito síncrono y el éxito asíncrono, así como el fallo asíncrono. El siguiente ejemplo devuelve una tarea utilizada para el caso de éxito asíncrono:

async Task<

Get Libro de cocina de la concurrencia en C#, 2ª edición now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.