Winforms:可观察。计时器引发InvalidOperationException

Winforms:可观察。计时器引发InvalidOperationException,winforms,system.reactive,Winforms,System.reactive,我正在使用winforms和被动扩展 我在表单中使用可观察计时器 当计时器触发时,在回调内部,当尝试调用任何winform控件上的方法时,会引发InvalidOperationException 我如何解决这个问题 这是我的代码: Observable.Timer(TimeSpan.FromSeconds(0), TimeSpan.FromSeconds(2)) .Subscribe((e) => { XXXXX(); }); 您需要使用

我正在使用winforms被动扩展
我在表单中使用可观察计时器
当计时器触发时,在回调内部,当尝试调用任何winform控件上的方法时,会引发InvalidOperationException

我如何解决这个问题

这是我的代码:

 Observable.Timer(TimeSpan.FromSeconds(0), TimeSpan.FromSeconds(2))
     .Subscribe((e) =>
     {
         XXXXX();
     });

您需要使用
ObserveOn(form)
方法

  • 安装nuget软件包“System.Reactive.Windows.Forms”
  • Subscribe()方法之前添加
    ObserveOn(form)

    Observable
        .Timer(TimeSpan.FromSeconds(0), TimeSpan.FromSeconds(2))
        .ObserveOn(this)
        .Subscribe((e) =>
        {
            UpdateProcessStatus();
        });
    

  • 显示的表单状态是什么?检查表格标志