我想实现这样一个功能,就是到了某个时间,然后系统就通知我的程序来执行一项任务, 这个怎么实现呢?反复查询系统时间的方法太浪费资源了吧?

解决方案 »

  1.   

    相对时间可以CreateWaitableTimer。
      

  2.   

    主动通知,我也不知道,凑合着用的方法,
    得到系统时间,判断与预期间隔来设置Timer,然后执行,再然后你懂的
      

  3.   

    添加任务 task schedulerTask Scheduler 1.0 Examples
      

  4.   

    每天...你的exe一直在运行吗?
    如果要定时启动exe,需要用系统的task scheduler。
      

  5.   

    一直运行的话,可以计算从当前时间到闹钟时间之间差多少ms,SetTimer或CreateWaitableTimer。这样效率比较高。
      

  6.   

    用SeyTimer函数
    #define ID_TIMER_BEGINEVENT WM_USER + 1
    在类的定义中:UINT m_uBeginTimer;
    在OnCreat函数中
    m_uBeginTimer = SetTimer(ID_TIMER_BEGINEVENT, 1000, NULL);
    //1000是自己设定定时的时间,单位是毫秒
    在OnTimer函数中
    void CBeginDlg::OnTimer(UINT nIDEvent) 
    {
    if (nIDEvent == ID_TIMER_BEGINEVENT)
    {
    //添加需要让程序运行的代码
    } CDialog::OnTimer(nIDEvent);
    }