如何创建计时器并重复运行程序?C++; 我想在我的程序中创建定时器,这样我就可以使它每分钟重新运行,而我不知道如何在C++应用程序中完成它。在C#中,我可以创建一个计时器,但我现在在这里挣扎
睡眠();不是一个选项,因为据我所知,它会使你的程序在X秒内处于非活动状态,我需要我的应用程序处于活动状态并工作,并一直计算。这是因为我的代码用于不断地将信息输入MS Access表。我能够创建代码的必要组件来连接并执行表的插入/更新,但这只是我正在创建的代码的许多组件中的一个。请帮我解决这个小问题,我对C++和学习ATM很陌生,但我正在开发一个快速学习曲线。谢谢每个平台都提供了创建计时器的api,通常在计时器过期后会给您一个回调。您只需搜索平台上可用的api即可如何创建计时器并重复运行程序?C++; 我想在我的程序中创建定时器,这样我就可以使它每分钟重新运行,而我不知道如何在C++应用程序中完成它。在C#中,我可以创建一个计时器,但我现在在这里挣扎,c++,timer,C++,Timer,睡眠();不是一个选项,因为据我所知,它会使你的程序在X秒内处于非活动状态,我需要我的应用程序处于活动状态并工作,并一直计算。这是因为我的代码用于不断地将信息输入MS Access表。我能够创建代码的必要组件来连接并执行表的插入/更新,但这只是我正在创建的代码的许多组件中的一个。请帮我解决这个小问题,我对C++和学习ATM很陌生,但我正在开发一个快速学习曲线。谢谢每个平台都提供了创建计时器的api,通常在计时器过期后会给您一个回调。您只需搜索平台上可用的api即可 如果使用Windows使用 <
如果使用Windows使用<强> < /> >函数>
,如果使用C++ .NET,可以使用与C++相同的定时器类(ES),只使用C++语法(使用GCNEW而不是NEXE,使用^用于GC引用)。 否则,您可以创建一个循环:while (should_keep_looping) {
// do what you need to do
// if necessary:
sleep(1);
}
我想你是在Windows上工作的,因为你提到了C。请看一看,如果它是MFC应用程序,请看。请参见此处: <>在C++中有内置的“定时器”,并且你对睡眠()的行为是正确的。上面的线程描述了一个自定义实现
- 如果你有一个窗口,你可以使用它的消息队列,正如Als和Marius在他们的回答中所建议的那样
- 您可以使用一些任务调度器和一些计时器来注册回调,例如由及其()提供的功能
- 您可以按照21点链接中的建议,手动检查任务之间的计时器是否过期
- 或者,您可以创建单独的线程,并让它在时间到来时调用您的回调。优点:您可以在那里使用sleep(),回调将与主线程并行调用。缺点:担心同步