我在製作C++/CLI Forms應用程序。Visual Studio C++如何讓表單在調用耗時函數時不會凍結?
在我的應用程序的主窗口中,我有一個按鈕。當我點擊那個按鈕時,我打電話給Load
函數。下面存在C++/CLI代碼:
private: System::Void Button1_Click(System::Object^ sender, System::EventArgs^ e) {
Load();
}
功能Load()
是一個耗時的功能。它使用cURL庫向網站發送多個HTTP GET請求。
在Form I中還包含一個ProgressBar和一個textlabel,用於顯示當前發送的請求。
問題是,當我點擊按鈕並調用函數時,窗體就凍結了。在Load()函數被調用時,我看不到progressBar和Textlabel改變它的值,Form就被凍結了。當Load()函數完成發送請求時,突然進度條將其值更改爲100%。
我希望我能夠清楚地描述我的問題,以便理解它。
此代碼是不是C++,這是C++/CLI - 完全不同的語言。 – ildjarn 2011-06-01 15:28:51
您需要專門研究線程 - BackgroundWorkerThread。 – ChrisF 2011-06-01 15:30:12
謝謝@ChrisF這就是我一直在尋找的東西。最後,我使用Visual Studio Toolbox中的backgroundWorker控件做了它。謝謝! – Darxis 2011-06-02 17:54:24