2010-12-19 48 views
1

我正在運行VB.NET的測試程序,它只會在for循環中緊縮一百萬個數字。我已經將一個暗示for循環進度的變量與進度條鏈接起來,但似乎當我運行該程序時,進度欄不會自行更新。該欄本身只有0-100的值作爲輸入(如文檔中所述),並且我已經測試了它,而不使用for循環,並且它工作正常。如何在VB.NET中長時間運行時強制更新進度條?

我認爲這與線程有關,但我不確定VB.NET中的事情究竟是如何工作的。所以我想先徵求專家意見。

任何意見表示讚賞。

+1

是的,線程。循環應該在另一個線程中。但請注意,UI應始終在UI線程中更新(在.net中,我認爲**它是主線程)。然而,我不能給出一個完整的答案,因爲我只做Mac/iOS開發,但我認爲這在任何地方都是一樣的,只不過在瀏覽器中。 – 2010-12-19 10:58:58

+0

不要在VB 6中執行線程。它是*可能*,但它*絕對*不值得,尤其是不適合這樣簡單的事情。 – 2010-12-19 11:10:37

+0

你在VB6中做它嗎? – 2010-12-19 11:30:35

回答

3

不知道這是否仍然適用於.net(或者如果這是一個VB6問題),但Application.DoEvents通常是在VB6天的解決方案。

嘗試Application.DoEvents在你的循環中更新進度條。

+0

這對VB.NET來說是正確的。在VB 6中,您只需編寫'DoEvents'(沒有這樣的類'Application')。您應該在循環的每次迭代中執行此命令,以確保您的進度欄得到更新。 – 2010-12-19 11:07:36

+0

在VB.NET winforms中看到的另一件事是system.componentmodel下的backgroundworker – 2010-12-20 15:10:42

1

很久以前的事,但我認爲你需要的 的DoEvents 聲明

相關問題