Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 油门也会延迟第一个样本_C#_System.reactive - Fatal编程技术网

C# 油门也会延迟第一个样本

C# 油门也会延迟第一个样本,c#,system.reactive,C#,System.reactive,我正在尝试驯服一个键盘触发的事件,如果没有节流,它将以非常高的频率触发。下面的代码可以工作,但它也会通过限制时间跨度延迟GlobalCopy的第一次调用。有没有办法及时得到第一批样品 observableGlobalCopy = Observable .FromEventPattern<EventHandler, EventArgs>(h => this.GlobalCopy += h, h => this.GlobalCopy -= h); observableG

我正在尝试驯服一个键盘触发的事件,如果没有节流,它将以非常高的频率触发。下面的代码可以工作,但它也会通过限制时间跨度延迟GlobalCopy的第一次调用。有没有办法及时得到第一批样品

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