【发布时间】:2020-05-13 12:28:18
【问题描述】:
我有一个每 100 毫秒获取一个 int 的主题。这个数字在每次迭代中递增。我订阅了这个主题,拿回 50 块,然后等待几秒钟。 示例:
SequenceGenerator gen = new SequenceGenerator();
gen.subj.Buffer(50).Subscribe(
async x =>
{
Console.WriteLine($"1: {x[x.Count - 1]}------");
await Task.Delay(10000);
Console.WriteLine($"1:------");
},
x => Console.WriteLine("EX"),
() => Console.WriteLine("1 Done"));
SequenceGenerator 仅执行以下操作:
int i = 0;
while (true)
{
++i;
subj.OnNext(i.ToString());
await Task.Delay(1);
}
每次缓冲区被填满时,都会调用“onnext”。即使最后一个“onnext”还没有完成。有没有办法调整这个?如果最后一个“onnext”完成,我希望只调用下一个“onnext”。 实际行为:
1: 50------
(wait ~0.5s)
1: 100------
...
预期行为:
1: 50------
(wait 10 seconds)
1: 100------
...
有没有办法做到这一点? 谢谢大家! 最好的问候。
【问题讨论】:
标签: .net system.reactive reactive subject