I am refactoring some code.
Can someone tell me why does my binding in the viewModel stop updating if I comment out those two lines:
.SubscribeOn(ThreadPoolScheduler.Instance)
.ObserveOn(Application.Current.Dispatcher)
How come it affect the second subscribe?
RendererService.WhenRenderProgress.Subscribe
My goal is to remove the wrapper Observable.Create(observer... but when I comment it out, even if the subject emit values, the viewModel does not render them.
Thank you!
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);
});
}
}