【发布时间】:2021-11-22 03:50:15
【问题描述】:
我在使用 Rx 实现某个场景时遇到了问题。我有一些代码:
enum Status { NotConnected, Connecting, Connected }
class Provider
{
public Status State { get => m_state; set => this.RaiseAndSetIfChanged(ref m_state, value); }
public double Divergence { get => m_divergence; set => this.RaiseAndSetIfChanged(ref m_divergence, value); }
}
public void Run(Provider provider)
{
provider.WhenAny(viewItem => viewItem.Divergence, change => change.Sender)
.Throttle(TimeSpan.FromMilliseconds(500))
.Subscribe(OnDivergenceChanged);
}
private void OnDivergenceChanged(Provider provider)
{
...
}
状态可以通过环形图NotConnected->Connecting->Connected.->NotConnected->Connecting...
初始状态为 NotConnected,Divergence 更改未被阻止。
我需要跳过更改 Divergence 值,从连接的那一刻开始(状态为 Connecting)并在“Connected”状态建立后 5 秒结束。
【问题讨论】:
标签: c# reactive-programming system.reactive reactiveui rx.net