请问,用VC怎么实现让一个程序每隔一段时间就运行一次?

时间:2022-12-20 15:53:12
我写了一个小程序,我现在想让它运行之后每隔5分钟后就自动执行一次,要怎么实现?


比如我的程序框架大体如下:

//Function Prototypes
void   function1() ;
void   function2();
void   function3();
void   function4();


int main()  
{       。
         。
         。
    function1();
        。
         。


    function2();
        。
         。
         。

}

void function2( )
{    
        。
         。
    function4();
         。
         。
   
     function3();
       。
        。

}
function1()
{
   。
    。
}
 function3()
{
     。
      。 
      。
}
function4()
{
  。
  。
  。
}

那么如果我想要让这个程序运行后,每隔5分钟就自动执行一次,我应该在什么地方添加什么函数才能做到??

谢谢!!!

14 个解决方案

#1


你应该在任务管理器里面添加一个定时任务。每5分钟启动一次。


或者把main函数改造成一个线程,然后新的main函数写个循环,每Sleep(5*60*1000)就启动一次线程,也算是5分钟一个任务。

#2


创建一个线程进行循环或者创建一个定时器。

#3


1.如果是这个程序A运行之后,关闭自己,那么就需要写一个服务B。在服务B中,做一个定时器,每5分钟启动程序A。
2.如果是这个程序A运行之后,不关闭自己。那么就简单一些,只需要在自己的程序中加一个定时器,响应OnTimer事件,每5分钟做响应的操作就行。

#4


CreateWaitableTimer/SetWaitableTimer/CancelWaitableTimer

#5


用定时器控制程序自行启动

#6


引用 3 楼 xiang_yun 的回复:
1.如果是这个程序A运行之后,关闭自己,那么就需要写一个服务B。在服务B中,做一个定时器,每5分钟启动程序A。 
2.如果是这个程序A运行之后,不关闭自己。那么就简单一些,只需要在自己的程序中加一个定时器,响应OnTimer事件,每5分钟做响应的操作就行。


UP

#7


用另一个程序定时启动

#8


就是整个程序执行完一次后过5分钟后,再执行一次,过5分钟后再执行一次,。。。。只要我不关闭这个程序,它就一直每隔5分钟执行一次,应该怎么做???

#9


引用 1 楼 coding_hello 的回复:
你应该在任务管理器里面添加一个定时任务。每5分钟启动一次。 


或者把main函数改造成一个线程,然后新的main函数写个循环,每Sleep(5*60*1000)就启动一次线程,也算是5分钟一个任务。


我没学过VC,写这个程序我是照猫画虎,请问你的第二种方法: 把main函数改造成一个线程,然后新的main函数写个循环,每Sleep(5*60*1000)就启动一次线程,也算是5分钟一个任务。--------------------------

具体怎么实现??

#10


可以用ontimer()函数

#11


再定义一个函数,把main中的代码都放到这个函数中,main函数中写一个循环,循环中调用该函数,然后Sleep(1000*60*5)。

#12


引用 4 楼 KEFU 的回复:
CreateWaitableTimer/SetWaitableTimer/CancelWaitableTimer

这个比较好
Sleep时间会有点出错

#13


引用 11 楼 cnzdgs 的回复:
再定义一个函数,把main中的代码都放到这个函数中,main函数中写一个循环,循环中调用该函数,然后Sleep(1000*60*5)。


呵呵,我发现你不但水平高,而且叙述能力和讲解能力也很强,我一下就知道怎么弄了,谢谢!!

#14


楼主又长一智了.

#1


你应该在任务管理器里面添加一个定时任务。每5分钟启动一次。


或者把main函数改造成一个线程,然后新的main函数写个循环,每Sleep(5*60*1000)就启动一次线程,也算是5分钟一个任务。

#2


创建一个线程进行循环或者创建一个定时器。

#3


1.如果是这个程序A运行之后,关闭自己,那么就需要写一个服务B。在服务B中,做一个定时器,每5分钟启动程序A。
2.如果是这个程序A运行之后,不关闭自己。那么就简单一些,只需要在自己的程序中加一个定时器,响应OnTimer事件,每5分钟做响应的操作就行。

#4


CreateWaitableTimer/SetWaitableTimer/CancelWaitableTimer

#5


用定时器控制程序自行启动

#6


引用 3 楼 xiang_yun 的回复:
1.如果是这个程序A运行之后,关闭自己,那么就需要写一个服务B。在服务B中,做一个定时器,每5分钟启动程序A。 
2.如果是这个程序A运行之后,不关闭自己。那么就简单一些,只需要在自己的程序中加一个定时器,响应OnTimer事件,每5分钟做响应的操作就行。


UP

#7


用另一个程序定时启动

#8


就是整个程序执行完一次后过5分钟后,再执行一次,过5分钟后再执行一次,。。。。只要我不关闭这个程序,它就一直每隔5分钟执行一次,应该怎么做???

#9


引用 1 楼 coding_hello 的回复:
你应该在任务管理器里面添加一个定时任务。每5分钟启动一次。 


或者把main函数改造成一个线程,然后新的main函数写个循环,每Sleep(5*60*1000)就启动一次线程,也算是5分钟一个任务。


我没学过VC,写这个程序我是照猫画虎,请问你的第二种方法: 把main函数改造成一个线程,然后新的main函数写个循环,每Sleep(5*60*1000)就启动一次线程,也算是5分钟一个任务。--------------------------

具体怎么实现??

#10


可以用ontimer()函数

#11


再定义一个函数,把main中的代码都放到这个函数中,main函数中写一个循环,循环中调用该函数,然后Sleep(1000*60*5)。

#12


引用 4 楼 KEFU 的回复:
CreateWaitableTimer/SetWaitableTimer/CancelWaitableTimer

这个比较好
Sleep时间会有点出错

#13


引用 11 楼 cnzdgs 的回复:
再定义一个函数,把main中的代码都放到这个函数中,main函数中写一个循环,循环中调用该函数,然后Sleep(1000*60*5)。


呵呵,我发现你不但水平高,而且叙述能力和讲解能力也很强,我一下就知道怎么弄了,谢谢!!

#14


楼主又长一智了.