gpt4 book ai didi

在不同的线程上创建一个计时器 - 没有回调函数(C,Windows)

转载 作者:太空宇宙 更新时间:2023-11-04 04:09:14 24 4
gpt4 key购买 nike

有没有办法在不同的线程上创建一个计时器(比如 10 秒)?我的意思是,我知道如何使用 CreateThread() 并且我知道如何创建/使用计时器。我遇到的问题是新线程无法接收回调函数。

对于那些不可避免地会问“你为什么要这样做?”的人答案是因为我必须这样做。它是一个更大的程序的一部分,不能在代码的这个特定部分使用回调函数。就这样。

有什么办法可以实现吗?

感谢代码。

谢谢!

编辑:

问题的更好解释:我的应用程序由两个独立的程序组成。主程序(可见的,用户界面)和另一个在后台做艰苦工作的程序(有点像守护进程)。后台进程在退出前需要完成对数据库的写入并关闭很多小文件。主应用程序向该后台进程发送“我们完成了”消息。收到此消息后,后台进程返回当前状态并存在。现在,我需要添加以下内容:收到消息后,它会返回一个状态并触发一个计时器,该计时器将在另一个线程上等待 X 时间,同时后台进程关闭所有数据库连接和文件。如果计时器达到 0 并且后台进程仍然存在,则它会终止它。如果后台进程关闭所有数据库和文件,则线程(和计时器)将在达到 0 之前终止,因为应用程序正常终止。

这样更好吗?

最佳答案

因此,您需要在 DB 进程中设置一个看门狗(我又看错了,不是吗)。像这样的 ThreadProc 可能就足够了,因为所有线程都在主线程终止时终止:

DWORD WINAPI TerminateAfter10s(LPVOID param) {
Sleep(10000);
ExitProcess(0);
}

关于在不同的线程上创建一个计时器 - 没有回调函数(C,Windows),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1395129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com