gpt4 book ai didi

c# - Rx.Net TestScheduler 如何重放事件?

转载 作者:太空宇宙 更新时间:2023-11-03 12:23:08 24 4
gpt4 key购买 nike

我正在尝试了解如何在 C# 中实现以下目标

我有这个类的列表

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

我想创建一个在 Time 成员变量指定的时间触发 OnNext 的 Observable。我知道 Rx.Net 附带了 TestScheduler,但我不知道如何将它与我拥有的结构一起使用。

我已阅读这篇文章,但不确定如何将其转换为 C#,因为它似乎完全符合我的需要。

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

如有任何帮助,我们将不胜感激。罗恩。

最佳答案

鉴于stocks是一个 IEnumerable<StockTickerChangeHistory>Time 订购

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);

关于c# - Rx.Net TestScheduler 如何重放事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46414267/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com