2012-03-04 55 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以在訂閱通知時進行更新。