2010-12-31 1 views

Répondre

4
list1.ToObservable() // Convert list1 to Observable 
    .Zip(
     Observable.Interval(TimeSpan.FromSeconds(1)), // Zip it with an observable that ticks every second 
     (list, timerList) => list // select list1 only 
    ). 
Subscribe((item) => 
{ 
    list2.Add(item); // on each tick, add an item to list2 
}); 
0

Voici une façon de le faire. Je ne dis pas que c'est la façon la plus «Rx», remarquez (mon expérience avec Rx est encore un peu limitée).

public static IEnumerable<T> Delay(this IEnumerable<T> source, int interval) 
{ 
    foreach (T item in source) 
    { 
     Thread.Sleep(interval); 
     yield return item; 
    } 
} 

Et puis:

var source = firstCollection.Delay(1000).ToObservable(); 
source.Subscribe(x => secondCollection.Add(x)); 
Questions connexes