随笔 - 130  文章 - 0  评论 - 12  阅读 - 6954

如何写 执行耗时任务的、可随时立即退出的函数 呢?

如题。

稍微解释下,因为有可能有人会误会:放新线程里面去不就可以了?这没有解决问题。如此的话,你那个线程函数怎么写?或者线程函数里调用的某个任务函数怎么写?总之,多线程虽然总是出现在这些问题的解决方案中,但不是多线程解决了这个问题。嗯……不知道说清楚了没?

目前我心里的答案只有这一种模式:

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   溪流  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
< 2011年5月 >
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 1 2 3 4
5 6 7 8 9 10 11

点击右上角即可分享
微信分享提示