c# - ObserveOnDispatcher 不工作

标签 c# .net wpf system.reactive

我有 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/

相关文章:

c# - 在类型上找不到匹配的构造函数。您可以使用 Arguments 或 FactoryMethod 指令来构造类型

c# - MVVM 属性太多

c# - 关闭应用程序的计时器

.net - 在 Visual Studio Tools for Git 上提交更改真的很慢

.net - SendKeys.Send 和 Windows 键

.net - 将 ConnectionString 保留在 LINQ 设计器文件中

c# - 将一个二维数组转换为两个一维数组

c# - 使用 EPPlus 将图像添加到 Excel

c# - Magento 从 C# 应用程序通过 SOAP 添加产品

c# - 如何在没有使用 c# 安装 Excel 的情况下创建具有密码保护的 Excel 2003 (.XLS) 文件?