在我們的程式中,經常會有一些耗時較長的運算,為了保證使用者體驗,不引起介面不響應,我們一般會採用多執行緒操作,讓耗時操作在後台完成,完成後再進行處理或給出提示,在執行中,也會時時去重新整理介面上的進度條等顯示,必要時還要控制後台執行緒中斷當前操作。
實際應用:
可以選擇乙個很大的資料夾,統計的時候可以進行移動窗體等操作。
使用這個元件其實非常簡單,例如,我們做乙個類似如下介面的進度條的小例子,在後台執行緒中進行耗時運算,同時重新整理介面上的進度條。
過程如下:
1.新建乙個windows窗體應用程式,如:backgroundworkerprogressbardemo
2.拖乙個progressbar(progressbar1)和乙個backgroundworker (backgroundworker1)到form上。
3.把下面的**copy過去就ok了,**注釋的很詳細,可以按照需要修改。
namespacebackgroundworkerprogressbardemo
void form1_shown(object
sender, eventargs e)
//on worker thread so do our thing!
void backgroundworker1_dowork(object
sender, doworkeventargs e)
}//back on the 'ui' thread so we can update the progress bar
void backgroundworker1_progresschanged(object
sender, progresschangedeventargs e)
}}
若要為後台操作做好準備,請新增dowork事件的事件處理程式,在此事件處理程式中呼叫耗時的操作。
若要開始此操作,請呼叫runworkerasync。
若要收到進度更新的通知,請處理progresschanged 事件。
若要在操作完成時收到通知,請處理runworkercompleted 事件。
注意:您必須非常小心,確保在 dowork 事件處理程式中不操作任何使用者介面物件。 而應該通過 progresschanged 和 runworkercompleted 事件與使用者介面進行通訊。
如果後台操作需要引數,請在呼叫 runworkerasync 時給出引數。 在 dowork 事件處理程式內部,可以從 doworkeventargs.argument 屬性中提取該引數。
vue資料不響應
一 在開發有時會遇到乙個問題,明明寫的沒問題,為啥資料就不響應呢處?template div div span 使用者名稱 span span 使用者性別 span span v if userinfo.officialaccount span div button click handleaddo...
vue 資料不響應的問題排除 解決
資料不響應,可能是用法有問題使用者名稱 使用者性別 if userinfo.officialaccount export default methods 1.將本來要新增的屬性提前在data中定義好data 2.直接替換掉userinfothis.userinfo 3.使用vue.setimport...
MFC ribbon控制項訊息不響應
今天在做ribbon的時候發現新增了乙個按鈕,響應函式寫完以後卻沒辦法觸發。我新增的按鈕id是id btn about,查了一下解決方案如下 1.檢視resource.件,確保自動生成的id不重複,如下,事實證明自動生成的重複了,自動生成的是32858,然後我手動修改為32860 define id...