0
我的表單創建一個背景工作,每6秒檢查一次。結果是1-100,我想顯示這個。從另一個線程更新progressbar的值?
但是,如果我這樣做直截了當我得到索姆交叉線程錯誤,所以我後一些研究代表是做到這一點。在Form1類中創建
IVE:
public delegate void SetProgressbarValueDelegate(int val);
但我如何「連接爲」以實際更新進度?
感謝
我的表單創建一個背景工作,每6秒檢查一次。結果是1-100,我想顯示這個。從另一個線程更新progressbar的值?
但是,如果我這樣做直截了當我得到索姆交叉線程錯誤,所以我後一些研究代表是做到這一點。在Form1類中創建
IVE:
public delegate void SetProgressbarValueDelegate(int val);
但我如何「連接爲」以實際更新進度?
感謝
使用的WinForms假設您正在,該BackgroundWorker
類引發一個事件ProgressChanged將自動被編組返回到您的UI線程。您應該在您的處理程序中針對此事件更新您的用戶界面。
在MSDN documentation中有一些簡單的使用BackgroundWorker
的例子。
Okey,它最初的作品。但如果我有一個值,讓我們留下99並希望它成爲進度條的新值,我該如何發送它?即時通訊(發件人爲BackgroundWorker).ReportProgress(99);內部worker_DoWork但我真的想傳輸數據,而不僅僅是數字(用於其他控件) – Jason94
對不起,我已經意外地對這一個downvote,雖然我的意圖是upvote。在編輯問題之前我無法更改它。實在抱歉!但請編輯,我會解除我的愚蠢行爲。 – faester
@faester - 剛剛編輯..謝謝你:-) – ColinE