0

WinformでRxを使用することを学んでいます。このコードを使用するときに、progressBar を更新する方法を教えてください。

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て、サブスクライバーに通知をディスパッチすることを意味します。

この場合、メッセージポンプを使用してサブスクライバーに公開するのは、スレッド上にあるインスタンス( staticプロパティをにWindowsFormsSynchronizationContext設定することで設定できます)になります。AutoInstalltrue

XtraMessageBox基本的に、への呼び出しをProgressBarインスタンスへの呼び出しに置き換えて、サブスクリプションが通知されたときに更新することができます。

于 2012-03-12T21:44:21.300 に答える