如何写 执行耗时任务的、可随时立即退出的函数 呢?
如题。
稍微解释下,因为有可能有人会误会:放新线程里面去不就可以了?这没有解决问题。如此的话,你那个线程函数怎么写?或者线程函数里调用的某个任务函数怎么写?总之,多线程虽然总是出现在这些问题的解决方案中,但不是多线程解决了这个问题。嗯……不知道说清楚了没?
目前我心里的答案只有这一种模式:
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) 检查下吗?这样岂不是这种检测代码充斥在任务中了?
不知各位有何经验和体会,求教~