我正在使用 winforms & 被动延期。
我在我的表单中使用Observable.Timer。
当计时器触发时,在回调内部尝试在任何winform控件上调用方法时会引发 InvalidOperationException 。
我该如何解决这个问题?
这是我的代码:
Observable.Timer(TimeSpan.FromSeconds(0), TimeSpan.FromSeconds(2))
.Subscribe((e) =>
{
XXXXX();
});
答案 0 :(得分:3)
您需要使用ObserveOn(form)
方法。
在ObserveOn(form)
方法之前添加Subscribe()
:
Observable
.Timer(TimeSpan.FromSeconds(0), TimeSpan.FromSeconds(2))
.ObserveOn(this)
.Subscribe((e) =>
{
UpdateProcessStatus();
});