我如何创建一个计时器,反复运行我的程序?c++
How do I create a timer run my program repeatedly? C++
我想在我的程序中创建定时器,以便我可以使它每分钟重新运行一次,我不知道如何在c++应用程序中做到这一点。在c#中,我可以创建一个计时器,但我现在在这里挣扎…
睡眠();不是一个选择,因为据我所知,它使你的程序不活跃X秒,我需要我的应用程序是活跃和工作,计算所有的时间。这是因为我的代码用于不断地将信息输入到MS Access表中。我能够创建代码的必要组件来连接并执行对表的插入/更新,但这只是我正在创建的代码的许多组件之一。请帮助我解决这个小问题(或大问题?),我是一个非常新的c++和学习ATM,但我正在开发一个快速的学习曲线。由于
我想你在Windows上工作,因为你提到了c#。看一下SetTimer,如果它是一个MFC应用,那么看一下CWnd::SetTimer。
每个平台都提供用于创建计时器的api,它通常在计时器到期后会给您一个回调。你可以在你的平台上搜索可用的api。
如果您使用的是windows,请使用setTimer函数
如果你正在使用c++ . net,你可以使用与c#相同的Timer类(es),只是使用c++语法(使用gcnew而不是new,使用^表示GC引用)。
否则你可以只写一个循环:
while (should_keep_looping) {
// do what you need to do
// if necessary:
sleep(1);
}
见:http://www.cplusplus.com/forum/beginner/317/
在c++中有一个内置的"定时器",你对sleep()的行为是正确的。上面的线程描述了一个自定义实现。
- 如果你有一个窗口,你可以使用它的消息队列,正如Als和Marius在他们的回答中建议的
- 你可以使用一些任务调度程序和一些定时器来注册一个回调,例如Boost提供的功能。Asio及其deadline_timer(示例)
- 你可以在BlackJack的链接 中手动检查任务之间的计时器是否过期或者你可以创建单独的线程,让它在时间到来时调用你的回调。优点:你可以在那里使用sleep(),你的回调将与主线程并行调用。缺点:担心同步
相关文章:
- 运行程序时出现问题
- 分段错误当我试图运行程序时出错
- C++ 每次运行程序时我都会"nan"输出的问题
- 通过 g++ 运行程序时没有这样的文件或目录
- 重新运行程序和字符串流?
- 无法在 VS Code 上使用代码运行程序运行C++文件
- 使用有限的 RAM 运行 c++ 程序
- 继续运行程序而无需任何干预,直到要求退出为止
- 如何在每次运行程序时写入文件的下一行?
- 控制台在运行C ++程序后立即关闭(无需调试)
- 运行程序时找不到共享对象库,但在编译过程中链接了它
- 远程运行程序
- 在 Heroku 上运行 C++ 程序
- 如何在Powershell中运行C++程序,就像CMD一样?
- 为什么与Java和Python相比,使用Cmake运行C++程序每次都需要这么长时间?
- C++随机数生成器通常在 Visual Studio 中运行程序时在 2 次后停止生成数字
- 崇高文本 3 - 在终端中编译并运行 C++ 程序(路径包含空格)
- 我收到阻止我运行程序的警告,但不确定如何解决
- C++ Visual Studio 无法完全运行程序
- 在SIGABRT c ++信号之后继续运行程序