我刚刚发现了SubscribeOn,这使我想知道是否应该使用它代替ObserveOn。 Google把我带给了herehere,但是两者都没有帮助我找到区别:似乎难以置信。

(在我的上下文中,我在非GUI线程上有事件“即将来临”,在使用事件数据更新控件之前,我需要切换到GUI线程)。

最佳答案

不久前,我遇到了类似的问题,并询问了this问题。我认为那里的回复(包括评论)将回答您的问题。总结一下:

  • 如果要更新gui线程上的控件,请使用ObserveOn。如果您引用System.Reactive.Windows.Forms.dll,您将获得方便的.ObserveOn(form)
  • SubscribeOn控制实际进行预订的线程。此处解决的问题是,如果您从多个不同的线程中添加事件处理程序,则WinForms和WPF将引发异常。

  • 另外,this post对弄清ObserveOnSubscribeOn之间的关系非常有帮助。

    10-04 18:51