我有以下代码,我尝试重播序列;但 PostWorkItem 总是为 null;我不明白为什么。下面的代码给出了堆栈溢出错误。
Task<List<WorkItem>> WorkItems = DbUtil.GetWorkItems(new List<string>() { WorkItemStatus.NEW, WorkItemStatus.PROCESSING });
Items = WorkItems.Result;
replay = Observable.Generate(
Items.GetEnumerator(),
events => events.MoveNext(),
events => events,
events => events.Current,
events => System.TimeSpan.FromMilliseconds(50),
var);
replay.Subscribe(
W =>
PostWorkItem(W)
);
//var.AdvanceBy(System.TimeSpan.FromSeconds(1));
var.Start();
您需要在中指定类型参数Observable.Generate
明确地这样它就不会与非通用 IEnumerator 混淆。尝试将第三行代码替换为:
replay = Observable.Generate<IEnumerator<WorkItem>,WorkItem>(
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)