我正在使用C#和WPF,兩者都很新穎。如何在繁忙循環中顯示進度?
我有一個循環,從外部來源讀取大量的數據。該過程大約需要20秒,我想向用戶顯示進度。我不需要任何花哨的進度條,所以我選擇在標籤中繪製我的進度,標籤上會顯示「Step 1/1000」,然後更改爲「Step 2/1000」等。
我的代碼看起來像這個:
// "count" is the number of steps in the loop,
// I receive it in previous code
String countLabel = "/"+count.ToString();
for (i = 0; i < count; i++)
{
... do analysis ...
labelProgress.Content = "Step "+i.ToString()+countLabel
}
但是,在分析過程中,屏幕「卡住」,進度不顯示爲前進。我理解我在C++中的這種行爲,我可能會有一個單獨的線程顯示進度條從循環接收通知,或某種形式的重繪/刷新,或強制窗口/應用程序處理其消息隊列。
什麼是在C#中做到這一點的正確方法?我不依賴於標籤,因此,如果有一個簡單的進度條彈出畫面,我可以代替使用這個標籤也將是巨大的......
感謝
這可能是幫助你,** 100%測試** http://stackoverflow.com/a/42995210/6863414 – 2017-04-06 03:53:08