2012-11-21 3 views

risposta

7

Credo che questo funzionerà

tasks.Select(t => Observable.FromAsync(() => t)) 
    .Merge(); 

Ogni attività invierà i suoi risultati alla sequenza osservabile in qualsiasi ordine che completano. Puoi iscriverti alla sequenza e fare quello che vuoi con i risultati in quel modo.

1

Credo che quello che stai cercando può essere Observable.Start()

Si può quindi aggiungere .Subscribe(callbackMethod) fino alla fine e specificare una callback, se necessario.

2

Si potrebbe fare in questo modo:

var query = tasks.ToObservable().SelectMany(task => task.ToObservable()); 

O, in alternativa, in questo modo:

var query = 
    from t in tasks.ToObservable() 
    from i in t.ToObservable() 
    select i; 
0

Come di Rx 2.0, c'è un modo leggermente più facile:

var query = tasks.ToObservable().Merge();