2010-12-31 10 views

答えて

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

これはあなたがそれを行う方法の1つです。私はそれが最も「Rx」の方法であると言っているわけではありません、あなたに気を付けてください(Rxでの私の経験はやや制限されています)。

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

そして:

var source = firstCollection.Delay(1000).ToObservable(); 
source.Subscribe(x => secondCollection.Add(x)); 
関連する問題