2012-07-18 11 views
0

我在第一次運行我的程序時需要花費很長時間在OnPaint函數中,並且需要一種方法來顯示我的進步。我已經有了進展,但我只是不知道展示它的最簡單方法。在函數(OnPaint)中長時間插入時顯示窗體上更新的最簡單方法

想要麼

  1. 東西在的OnPaint功能stucked在長時間內時保持形式響應,我改變了標題名稱顯示的進展,我希望的形式保持響應!

  2. 彈出別的東西,很容易創建BTW顯示進度

,我加載它只是OnPaint中,因爲我想的形式展現出來,這樣用戶就會知道,程序正確打開。否則在表單加載時沒有任何事情發生,用戶可能會認爲該程序甚至沒有打開。

+0

[DoEvents](http://www.codinghorror.com/blog/2004/12/is-doevents-evil.html) – 2012-07-18 03:36:53

+1

你不應該在繪畫事件中處理任何東西。只需快速畫一些東西。我們可能需要知道*在繪畫事件中你正在處理什麼。 – LarsTech 2012-07-18 03:38:18

回答

0

DoEvent

按照提到的傑里米·湯普森,非常感謝

雖然我需要等待2天才能夠接受這個答案。

2

這裏沒有很多上下文,但是如果我理解正確的話,表單加載時可能會發生某些情況,並且可能需要很長時間。您正在嘗試在繪畫事件中執行此操作,因爲您希望確保用戶在加載完成時看到某種東西

評估是否正確?

如果是這樣,我建議您考慮使用BackgroundWorker類,因爲它可以讓您在保持UI響應的同時執行所討論的昂貴「加載」。

與文檔做了偉大的工作,所以我不會在這裏寫下另一個樣品的例子...

BackgroundWorker Class

克里斯

+0

嗨克里斯,它是習慣StackOverflow答案包括一個鏈接的內容摘要或專門回答問題的亮點。 SE網站的目標是成爲未來幾年知識和答案的資源。只有鏈接回答,操作者必須挖掘另一個資源以找到他/她可能不確定的答案。最重要的是,如果您的鏈接永遠不會中斷,那麼未來訪問此頁面的任何人都無法回答您的問題。考慮讓你的答案[編輯]添加更多細節。祝你好運! – 2012-07-18 04:10:58

+0

嗨,我其實看着BackgroundWorker, 然而,因爲我加載到我的表格中的成員很多的東西,這不能直接完成,因爲線程無法直接訪問該成員,也必須有很多工作讓它工作。 – 2012-07-18 04:15:42

+1

@JeremyThompson指出。我感謝您花時間讓我意識到建議背後的疏忽和推理。謝謝! – 2012-07-18 06:47:15

相關問題