我有 2 个线程,WPF+PIPE。我在管道 rx 事件上注册了 WPF。 当使用 ObserveOnDispatcher() 时,注册的处理程序不会被调用,当删除 ObserveOnDispatcher() 时,它会在管道线程上调用。 有谁知道为什么在使用 ObserveOnDispatcher() 时根本不调用它?
最佳答案
DispatcherObservable.ObserveOnDispatcher
在调用时获取 当前线程 的调度程序。如果您从后台线程调用它,它将在该线程上寻找调度程序(如果有的话)。
如果你想回调到 UI 线程,你需要获取 IScheduler
来自 Scheduler.Dispatcher
在 UI 线程上(就像在应用程序开始时一样)并将该实例传递给您的后台线程。然后您可以使用 ObserveOn(dispatcherSchedulerInstance)
安排回 UI 线程。
关于c# - ObserveOnDispatcher 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6043488/