Capítulo 3. Flujos asíncronos
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
Los flujos asíncronos son una forma de recibir asíncronamente múltiples elementos de datos. Están construidos sobre enumerables asíncronos (IAsyncEnumerable<T>
). Un enumerable asíncrono es una versión asíncrona de un enumerable; es decir, puede producir elementos bajo demanda para un consumidor, y cada elemento puede producirse de forma asíncrona.
Me resulta útil contrastar los flujos asíncronos con otros tipos que pueden resultarme más familiares y considerar las diferencias. Esto me ayuda a recordar cuándo utilizar flujos asíncronos y cuándo serían más apropiados otros tipos.
Flujos asíncronos y tarea<T>
El enfoque asíncrono estándar de con Task<T>
sólo es suficiente para manejar asíncronamente un único valor de datos. Una vez que se completa un determinado Task<T>
, eso es todo; un único Task<T>
no puede proporcionar más de un valor de T
a sus consumidores. Incluso si T
es una colección, el valor sólo puede proporcionarse una vez. Consulta "Introducción a la programación asíncrona" y el Capítulo 2 para saber más sobre el uso de async
con Task<T>
.
Al comparar Task<T>
con los flujos asíncronos, éstos se parecen más a los enumerables. En concreto, un IAsyncEnumerator<T>
puede proporcionar cualquier número de valores T
, de uno en uno. Al igual que IEnumerator<T>
, un IAsyncEnumerator<T>
puede tener una longitud infinita.
Streams asíncronos ...
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.