2010-10-31 10 views
38

Me pregunto qué significan las nuevas características asincrónicas C# 5.0 para Rx - Reactive Extensions? Parece que no es un reemplazo, pero parece que se superponen: Task y IObservable.C# 5.0 función async/await y Rx - Extensiones reactivas

EDIT: Task vs IObservable: when to use what?

+11

"Async/await" no reemplaza a Rx más de lo que LINQ reemplazó a SQL. Puede usar LINQ para hablar con un servidor SQL; puede usar la asincronía basada en tareas con Rx para orquestar el trabajo desencadenado por las secuencias de eventos. Estas tecnologías deben mejorarse mutuamente, no competir. –

Respuesta

18

Comprobar también: TPL Dataflow Overview sobre TDF y Rx:

lectores astutos pueden notar algunas similitudes entre TPL flujo de datos y extensiones reactivas (Rx), actualmente disponible para su descarga en el sitio DevLabs prototipos. Rx se enfoca predominantemente en la coordinación y composición de flujos de eventos con una API basada en LINQ, proporcionando un amplio conjunto de combinadores para manipular IObservables de datos. Por el contrario, TPL Dataflow se centra en proporcionar componentes para pasar mensajes y paralelizar aplicaciones intensivas en CPU y E/S con alto rendimiento y baja latencia, a la vez que proporciona a los desarrolladores control explícito sobre cómo se almacenan los datos y cómo se mueven los datos del sistema . Como tal, Rx y TPL Dataflow, aunque potencialmente se ven como similares en un nivel de 30,000 pies, abordan necesidades distintas. Aun así, TPL Dataflow y Rx ofrecen una mejor historia conjunta.

13

Jeff escribe en la que Rx Rx forum seguirá siendo utilizado para orquestar eventos múltiples tareas impulsadas, Rx tiene una nueva versión que incluye IAsyncEnumerable utilizar las nuevas funciones asíncronas en Rx.

+1

+1 Además, Bart De Smet habló un poco sobre async y Rx (mencionando IAsyncEnumerable) en su charla de PDC "LINQ, Take Two" http://player.microsoftpdc.com/ –

Cuestiones relacionadas