我正在将基于 XNA 轮询的输入转换为基于 Observable 的输入。在这里,GetPressedKeys() 方法每 20 毫秒返回一个可枚举的枚举键:
Observable.Generate(
Enumerable.Empty<Keys>(),
pressed => true,
pressed => Keyboard.GetState().GetPressedKeys(),
pressed => pressed,
pressed => TimeSpan.FromMilliseconds(20),
scheduler
).DistinctUntilChanged();
我的问题是这是为每个订阅者完成的。我知道 Rx 使用惰性求值,但我想以某种方式限制这个 hot observable 在每个间隔只执行一次 GetPressedKeys() 函数,即使有多个订阅者也是如此。这可能吗?