【发布时间】:2018-04-26 19:36:56
【问题描述】:
我正在重构一些代码。
如果我注释掉这两行,谁能告诉我为什么我在 viewModel 中的绑定会停止更新:
.SubscribeOn(ThreadPoolScheduler.Instance)
.ObserveOn(Application.Current.Dispatcher)
怎么会影响第二次订阅?
RendererService.WhenRenderProgress.Subscribe
我的目标是删除包装 Observable.Create(observer... 但是当我将其注释掉时,即使主题发出值,viewModel 也不会呈现它们。
谢谢!
public class RendererService
{
public Subject<int> WhenRenderProgress = new Subject<int>();
public void Render()
{
Observable.Create<Unit>(observer =>
{
for (var i = 0; i < 100; i++)
{
WhenRenderProgress.OnNext(i);
}
observer.OnCompleted();
return Disposable.Empty;
})
.SubscribeOn(ThreadPoolScheduler.Instance)
.ObserveOn(Application.Current.Dispatcher)
.Subscribe();
}
}
public class ViewModel: Screen, IViewModel, IDisposable
{
public int Progress { get; set; }
public ViewModel(RendererService RendererService)
{
RendererService.WhenRenderProgress.Subscribe(i =>
{
Progress = i;
NotifyOfPropertyChange(() => Progress);
});
}
}
【问题讨论】:
标签: c# wpf system.reactive caliburn.micro