如題。
稍微解釋下,因為有可能有人會誤會:放新線程里面去不就可以了?這沒有解決問題。如此的話,你那個線程函數怎么寫?或者線程函數里調用的某個任務函數怎么寫?總之,多線程雖然總是出現在這些問題的解決方案中,但不是多線程解決了這個問題。嗯……不知道說清楚了沒?
目前我心里的答案只有這一種模式:
bool DoTask(HANDLE hQuitSignal)
{
while (!QuitCondition)
{
if (WaitForSingleObject(hQuitSignal, 0) == WAIT_OBJECT_0)
{
return false;
}
// Do something
}
return true;
}
其中,“// Do something”部分要細化到瞬間執行完成的細度。
但是我很困惑的是,如果這些任務很繁重,難道我必須每進行一些操作就 if (WaitForSingleObject(hQuitSignal, 0) == WAIT_OBJECT_0) 檢查下嗎?這樣豈不是這種檢測代碼充斥在任務中了?
不知各位有何經驗和體會,求教~
posted on 2011-05-26 00:36
溪流 閱讀(2899)
評論(29) 編輯 收藏 引用 所屬分類:
C++ 、
Windows