【发布时间】:2016-09-26 11:27:28
【问题描述】:
我在 WPF 应用程序的非 UI 线程上运行方法(基于 ToObservable)时遇到问题。
例如我有这个方法:
public IObservable<ViewModel> Get()
{
IEnumerable<ViewModel> vms = _repository.Get();
Thread.Sleep(2000);
return vms.ToObservable();
}
我在 ViewModel 中使用这个方法:
manager.Get()
.ObserveOnDispatcher()
.SubscribeOn(new NewThreadScheduler())
.Subscribe(result =>
{
Data.Add(result);
});
问题是 Get 方法在 UI/Main 线程上执行,但我需要在非 UI 线程上运行此方法。
【问题讨论】:
-
仅供参考,这种返回 IObservable
的方式是一种反模式。查看introtorx.com/Content/v1.0.10621.0/… 了解原因。
标签: c# multithreading system.reactive observable