【问题标题】:Dispatcher Scheduler - Rx调度程序调度程序 - Rx
【发布时间】:2023-04-04 00:17:01
【问题描述】:

我们正在使用 .NET 3.5 并已开始使用 Reactive Extensions。我们正在使用与 .NET 3.5 兼容的 system.Reactive(运行时版本:v2.0.50727)。

我正在尝试观察调度程序调度程序上的事件,因为我正在使用 WPF 控件(它是 winforms shell,嵌入了 WPF 主机控件),但是我无法在调度程序类上发现该选项(system.reactive.concurrency .调度程序)。看起来它可以从 .NET 4.0 开始使用。我的问题是,如何在 .NET 3.5 中使用它?请注意,调用发生在我的 ViewModel 内部,而不是 View。

代码:

 this.ObservePropertyChanged(x => x.Queue)
               //I cant find scheduler dispatcher option, 
               //there are other options such as current, imeediete, new etc.
               .ObserveOn(Scheduler.Dispatcher)
                .Subscribe(RefreshQueues);

谢谢,

-迈克

【问题讨论】:

    标签: c# system.reactive


    【解决方案1】:

    更新:基于 Rx 2.2.4.0
    WPF 的 DispatcherScheduler 当前已移至 System.Reactive.Windows.Threading 命名空间。
    使用 Nuget 包,搜索 Rx-WPF 下载包并使用 DispatcherScheduler.Current 代替 Scheduler.Dispatcher

    【讨论】:

      【解决方案2】:

      您应该可以使用来自http://www.nuget.org/packages/Rx-WinForms/ 的 RX Winforms 扩展库

      this.ObservePropertyChanged(x => x.Queue)
                 .ObserveOn(control);
      

      或者如果你已经在正确的线程上。

      this.ObservePropertyChanged(x => x.Queue)
                 .ObserveOn(SynchronizationContext.Current);
      

      【讨论】:

        【解决方案3】:

        我认为你应该可以使用 DispatcherScheduler.Current

        【讨论】:

        • AFAIK,当前只会调用回调线程上的动作,这是一个后台线程。我需要在 UI 线程上执行订阅,并且 UI 绑定集合正在更新。
        • DispatcherScheduler.Current 是您所描述的。它将对当前 ui 调度程序的调用编组。
        • 啊..现在我明白了..“dispatcherScheduler”而不是“Scheduler”..我尝试了 System.Reactive.Concurrency.DispatcherScheduler.Current,并且该行导致编译错误。你确定这在 .NET 3.5 中可用?
        • 应该是,对于 DispatcherScheduler 实现,没有什么是 .NET 3.5 无法提供的。命名空间是正确的,可能有一些缺失的引用?似乎解决了这个问题link
        • 确保你拉入 wpf/xaml nuget 包。显然,Dispatcher 相关代码不会在与平台无关的代码库上发布,因为在服务器上它没有意义,而在其他平台上它具有不同的含义(winPhone/silverlight)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-07
        • 1970-01-01
        • 2011-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多