我有一个reactiveui / rx应用程序。目前,我正在开发它的桌面部分,因此它是一个wpf应用程序。由于性能原因,我想在其单独的线程中创建每个窗口。
这就是为什么我需要在当前线程上运行ObserveOn
someCollection.Changed.Buffer(TimeSpan.FromSeconds(n)).ObserveOn(*should be a link to a current thread*).Subscribe(bufferedItems => {})
另外,这段代码位于一个可移植的lib中,这就是为什么我不能使用System.Threading.Thread类
有解决方法吗?
答案 0 :(得分:2)
如果您可以捕获Dispatcher
,则可以将其提供给DispatcherScheduler
。
var currentDispatcher = Dispatcher.CurrentDispatcher;
var scheduler = new DispatcherScheduler(currentDispatcher);
Observable.Empty<int>().ObserveOn(scheduler)....