2012-03-04 56 views
0

我正在学习在winforms中使用Rx。请让我知道如何更新我的progressBar当我使用此代码。Winforms中的无效扩展

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); }, 
    () => { } 
); 

回答

0

您已经调用ObserveOnDispatcher,这意味着,当观察到将使用SynchronizationContext那是线程时ObserveOnDispatcher被叫到通知分派给用户。

在这种情况下,这将是WindowsFormsSynchronizationContext实例(可以通过设置static AutoInstall propertytrue成立)是将使用消息泵发布到用户的线程上。

基本上,您可以将呼叫替换为XtraMessageBox,拨打电话ProgressBar instance以在订阅通知时进行更新。