我也遇到過需要在我的Windows使用多線程形成用C++ GUI應用程序。從我對這個話題的研究看來,後臺工作者線程是我爲了達到目的而走的路。根據示例代碼,我有在多線程和後臺工作線程的一些問題,在Windows窗體
System::Void backgroundWorker1_DoWork(System::Object^ sender, System::ComponentModel::DoWorkEventArgs^ e)
{
BackgroundWorker^ worker = dynamic_cast<BackgroundWorker^>(sender);
e->Result = SomeCPUHungryFunction(safe_cast<Int32>(e->Argument), worker, e);
}
但也有幾件事情,我需要獲得連勝,找出
- 後臺工作線程將讓我的多線程生活更輕鬆?
- 爲什麼我需要e->結果?
- 傳遞給backgroundWorker1_DoWork函數的參數是什麼?
- 參數safe_cast(e-> Argument)的用途是什麼?
- 我應該在CPUHungryFunction()中做什麼?
- 如果我的CPUHungryFunction()有一個無限循環的while循環呢?
- 我有工作線程獲取處理器時間的控制權嗎?
- 可以更具體地控制循環在設定的時間段內循環的次數嗎?當我只需要每秒循環30次時,我不想使用cpu每秒循環1000次。 *是否需要控制更新GUI的速率?
我剛剛在我的帖子中添加了另一個關於safe_cast(e-> Argument)的簡短問題。 – workdamnit