C# 油门也会延迟第一个样本
我正在尝试驯服一个键盘触发的事件,如果没有节流,它将以非常高的频率触发。下面的代码可以工作,但它也会通过限制时间跨度延迟GlobalCopy的第一次调用。有没有办法及时得到第一批样品C# 油门也会延迟第一个样本,c#,system.reactive,C#,System.reactive,我正在尝试驯服一个键盘触发的事件,如果没有节流,它将以非常高的频率触发。下面的代码可以工作,但它也会通过限制时间跨度延迟GlobalCopy的第一次调用。有没有办法及时得到第一批样品 observableGlobalCopy = Observable .FromEventPattern<EventHandler, EventArgs>(h => this.GlobalCopy += h, h => this.GlobalCopy -= h); observableG
observableGlobalCopy = Observable
.FromEventPattern<EventHandler, EventArgs>(h => this.GlobalCopy += h, h => this.GlobalCopy -= h);
observableGlobalCopy
.SubscribeOnDispatcher()
.Throttle(GlobalEventThottle)
.Subscribe(x => GlobalCopyHandler());
observegGlobalCopy=可观察
.FromEventPattern(h=>this.GlobalCopy+=h,h=>this.GlobalCopy-=h);
可观察全局
.SubscribeOnDispatcher()
.节气门(球形排气门)
.Subscribe(x=>GlobalCopyHandler());
您可以尝试以下方法:
var observableGlobalCopy2 = observableGlobalCopy
.Window(() => Observable.Timer(TimeSpan.FromSeconds(1.0)))
.Select(_ => _.Take(1))
.Merge();
如果我正确理解你的要求,这个怎么样
observableGlobalCopy.Take(1)
.Concat(
observableGlobalCopy.Throttle(GlobalEventThottle))
.SubscribeOnDispatcher()
.Subscribe(x => GlobalCopyHandler());
您甚至可以将
Select
和Merge
组合成一个SelectMany