2017-09-25 67 views
2

我想了解如何實現在C#以下Rx.Net TestScheduler如何重放事件?

我有這個類的List

public class StockTickerChangeHistory 
{ 
    public DateTime Time; 
    public string Stock; 
} 

我想創建一個可觀察的是火災OnNext的由指定的時間時間成員變量。我知道Rx.Net附帶了TestScheduler,但我對如何將它與我擁有的結構一起使用感到茫然。

我讀過這篇文章,但不知道如何將其轉換爲C#,因爲它看起來正是我所需要的。

https://blog.niallconnaughton.com/2015/05/09/time-travel-with-reactive-extensions/

任何幫助將不勝感激。 Ron。

回答

0

鑑於stocksTime

var scheduler = new TestScheduler(); 

//Convert to array of OnNext notifications and create an Observable 
var history = stocks.Select(i => OnNext(i.Time.Ticks, i)).ToArray(); 
var stockHistoryObservable = scheduler.CreateHotObservable(history); 

//Create an observer and subscribe 
var observer = scheduler.CreateObserver<StockTickerChangeHistory>(); 
stockHistoryObservable.Subscribe(observer); 

scheduler.AdvanceTo(dateWhenNoHistoryYet); //no history 
observer.Messages.AssertEqual(); 
scheduler.AdvanceTo(dateWhenHistoryIsCompleted); //all history arrived 
observer.Messages.AssertEqual(history); 
下令 IEnumerable<StockTickerChangeHistory>