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