做一个服务,用windows的任务来执行

解决方案 »

  1.   

    简单的做,用window的任务就行,
    要不就得做一个window服务程序。
      

  2.   

    用win98或win2000中的计划任务即可
      

  3.   

    ASP.NET 用这个:Timer 组件根据您指定的时间间隔,定期引发一个名为 Elapsed 的事件。您可以处理这个事件来执行必要的处理。例如,假设您有一个联机销售应用程序,它持续向一个数据库投递销售订单。编译要传送的指令的服务成批处理订单,而不是单独地处理每份订单。您可以使用计时器每 30 分钟启动一次批处理。
      

  4.   

    net use 建立连接(或者说登陆)
    net time的到要运行程序的机器时间
    at添加计划任务
      

  5.   

    啊,发现大家好象误会我的意思了!
    计划任务是用来定时执行一个可执行文件的吧?
    我这里的任务是指我的程序里的一个函数要实现的功能。
    sorry:(
    程序大概是这样子的,相信是个很普遍的问题:
    程序运行时要把运行日志保存下来,不过保存成一个文件的话,如果程序连续运行几天的话运行日志会变得很大。
    于是想在每天00:00的时候程序自动把运行日志保存到新的文件中。用定时器在这种每天唤醒一次的场合合适吗?请大家提提思路:)
      

  6.   

    在写入日志的地方加一个时间判断,如果是零点,则新建一个日志文件,同时更改原来的日志文件的文件名,这样就做到了,不必用timer和windows service.原因有:
    1、timer只适合频繁计时。
       另外,timer有三个:System.Windows.Form.Timer
                          System.Timers.Timer
                          System.Threading.Timer
       其中,System.Windows.Form.Timer计时不精确
    2、windows service也不适合一天只触发一次的时间判断
      

  7.   

    to Xparticle
    谢谢你提供思路,呵呵,
    我想到另一种解决方法了。
    因为程序中我还用了另一些定时器。有些定时器在00:00分的时候会做一些特定的事情
    决定把改日志名的这个任务交给它来做好了:)呵呵,不知大伙还有没其它思路呢?
      

  8.   

    用WINDOWS写一个自动扫描的线程,然后用线程唤起程序。
      

  9.   

    //定时扫描,隔1分钟扫描一次
                      //系统初始化的时候定义一个blnStartImport 变量用来判断是否需要执行你的函数
    private void Looktimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
    {
    ADImportDB.lib.import Import;
    try
    {
    int NowHour = System.DateTime.Now.Hour;
    if(NowHour>=0 && NowHour<1)
    {
    if(blnStartImport == true)
    {
    Looktimer.Enabled = false;
    if(你的函数()==true)
    {
    blnStartImport = false;
    }
    Looktimer.Enabled = true;
    }
    }
    else
    {
    blnStartImport = true;
    }
    }
    catch(Exception err)
    {
    Looktimer.Enabled = true;
    Log.WriteLogLocal(err.Message.ToString());
    }
    finally
    {
    Import = null;
    }
    }  
      

  10.   

    请问下qiujinwen,
    ADImportDB.lib.import Import;
    和后面的一句Import=null;
    是什么意思呢?
    好象函数中没用到呢??
    呵呵,能不能实现在我的函数成功执行后把时间间隔提到明天的00:00分
    然后在00:00的时候再把时间间隔改为1秒直至成功执行完我的函数,
    然后以此循环呢?
      

  11.   

    ADImportDB.lib.import Import是我自己写的一个导数据的类。你可以不要:)。我是定时每天0:00导一次的。就这段代码...导数据的时候我已经把timer.enable= false了。导完或失败的时候才设置成true
      

  12.   

    用timer每个一点时间起来判断时间,我觉得对于一天运行一次程序,效率是在有问题。占用资源恐怕太多了。
      

  13.   

    你用每分钟扫描一次的timer并不能保证一定会在0:00执行,除非你每秒钟扫描一次