我有一个程序,生成的是服务应用程序。
里面有一个计时器 timer.
我发觉 timer 最多是每隔1分钟多一些必须要执行一次。我想让这个触发时间的间隔增加到 24 小时执行一次。比如每天早上 7 点 执行一次。请问该如何做?请大家不要建议我在 timer 控件里加一个变量。因为我不打算每分钟执行一次 timer.
我是服务应用程序,需要最大化减少系统资源的利用。请问还有其他的方案吗?100分相送,谢谢大家了!

解决方案 »

  1.   

    那就用线程嘛,直接多用几个sleep()就行了
      

  2.   

    sql里面不是有个sql server 代理的吗?
    那里的作业可以解决这个问题
      

  3.   

    使用win的系统服务能解决这个问题吗
      

  4.   

     WindowsService视频http://blog.csdn.net/Sandy945/archive/2009/08/31/4503463.aspx
      

  5.   

    一般来说就2种办法吧,
    要么Timer的间隔设置成24X60X60X1000毫秒,0x05265C00,还算是在int的范围内。
    要么就是定时判当前时间是不是需要做事,操作频繁了点不过判断时间浪费不了多少CPU和内存吧
    比如预计要每天8点做事
    全局设置一个 public static DateTime Next= DateTime.Parse("8:00:00");
    然后Timer everyDay = new Timer(callback,null,100,1000*60*5);//没5分钟执行判断
    判断就是
    if(DateTime.Now>Next)
    {
         Next = Next.AddDay(1);
    //Do 
    }
      

  6.   

    是啊,做好一个exe,用计划任务定时执行就可以了。
      

  7.   

    线程,线程里加timer  
    呵呵
      

  8.   

    timer的最大间隔绝不止1分多钟,我没有实际测过最大间隔,不过从理论上分析至少12小时之内是没问题的。你是怎么得出这个结论的?