0

我正在学习在 winforms 中使用 Rx。当我使用此代码时,请告诉我如何更新我的进度条。

Observable.ToAsync<Boolean>(DoLogin)().ObserveOnDispatcher().Subscribe(
    l => {
        XtraMessageBox.Show(this, "Welcome " + DefaultManager.Principal.Identity.Name, "Loged in successfully", MessageBoxButtons.OK, MessageBoxIcon.Information);
    },
    ex => { MessageBox.Show(ex.Message); },
    () => { }
);
4

1 回答 1

0

您已经在调用ObserveOnDispatcher,这意味着当 observable 将使用调用时SynchronizationContext线程上的ObserveOnDispatcher将通知发送给订阅者时。

在这种情况下,将是线程上的WindowsFormsSynchronizationContext实例(可以通过将静态AutoInstall属性设置为来设置true)将使用消息泵发布给订阅者。

基本上,您可以将调用替换XtraMessageBox为对ProgressBar实例的调用,以便在通知订阅时进行更新。

于 2012-03-12T21:44:21.300 回答