2010-10-31 12 views
38

Mi chiedo cosa significano le nuove caratteristiche asincrone C# 5.0 per Rx - Reactive Extensions? Sembra non essere un sostituto, ma sembrano sovrapporsi - Task e IObservable.Funzione asincrona/attesa C# 5.0 e Rx - Estensioni reattive

EDIT: Task vs IObservable: when to use what?

+11

"Async/await" non è un sostituto di Rx più di quanto LINQ fosse un sostituto di SQL. È possibile utilizzare LINQ per parlare con un back-end SQL; è possibile utilizzare l'asincronia basata sulle attività con Rx per orchestrare il lavoro innescato da flussi di eventi. Queste tecnologie dovrebbero rafforzarsi a vicenda, non competere. –

risposta

18

Controllare anche: TPL Dataflow Overview su TDF e Rx:

lettori più attenti possono notare alcune somiglianze tra TPL flusso di dati e le estensioni reattivi (Rx), attualmente disponibile come download dal sito DevLabs prototipi. Rx è prevalentemente focalizzato sulla coordinazione e la composizione di flussi di eventi con un'API basata su LINQ, fornendo un ricco set di combinatori per la manipolazione di IObservable dei dati. Al contrario, TPL Dataflow si concentra sulla fornitura di blocchi predefiniti per il trasferimento di messaggi e la parallelizzazione di applicazioni CPU e I/O ad alto throughput e bassa latenza, fornendo allo stesso tempo agli sviluppatori un controllo esplicito sul modo in cui i dati vengono memorizzati e spostati sul sistema . Pertanto, Rx e TPL Dataflow, sebbene potenzialmente considerati simili a un livello di 30.000 piedi, rispondono a esigenze distinte. Anche così, TPL Dataflow e Rx forniscono una storia migliore.

13

Jeff scrive sulla Rx forum che Rx sarà ancora essere utilizzato per orchestrare le attività guidate evento multipla, Rx ha rilasciare una nuova versione che include IAsyncEnumerable di utilizzare le nuove funzioni asincrone in Rx.

+1

+1 Inoltre, Bart De Smet ha parlato un po 'di asincrono e Rx (menzionando IAsyncEnumerable) nel suo talk PDC "LINQ, Take Two" http://player.microsoftpdc.com/ –

Problemi correlati