如何用timer控制程序在晚上3点准时执行
那位高手知道,,每天晚上3点都执行。。怎么做,有高手知道请回贴,谢谢先

解决方案 »

  1.   

    最菜的办法:用一个TIMER控件监控当前时间,控制另一个控件的开启和关闭。
      

  2.   

    你timer每秒检测一次时间,如果当前时间等于晚上3点,则开始执行
    if(DateTime.Now.Hour==3)
       开始干
      

  3.   

    private void timer1_Tick(object sender, System.EventArgs e)
    {
    if(DateTime.Now.Hour==3 && DateTime.Now.Minute==0 && DateTime.Now.Second==0)
    {
    do....;
    }
    }
    另外,timer1.Interval=1000;
      

  4.   

    其实timer1.Interval可以设置的长一些
      

  5.   

    用控件干嘛呀,多麻烦,Thread.sleep(让它睡到3点就起不是更好);
      

  6.   

    用windows服务程序,timer组件(不是windows控件咯)。间隔设为1分钟。timer1_Tick事件中判断当前时间是否在一个时间段内。----------------------------
    四十年来家国,三千里地山河,凤阁龙楼连霄汉,玉树琼枝作烟箩。几曾识干戈?
      

  7.   

    call xxx.exe at 03:00
    eg:
    shutdown at 03:00 -f
      

  8.   

    作业。
    --示例:--创建作业
    exec msdb..sp_add_job @job_name='数据处理'--创建作业步骤
    declare @sql varchar(800),@dbname varchar(250)
    select @sql='exec p_createxml'  --数据处理的命令
    ,@dbname=db_name() --执行数据处理的数据库名exec msdb..sp_add_jobstep @job_name='数据处理',
    @step_name = '数据同步',
    @subsystem = 'TSQL',
    @database_name=@dbname,
    @command = @sql,
    @retry_attempts = 5,  --重试次数
    @retry_interval = 5   --重试间隔--创建调度
    EXEC msdb..sp_add_jobschedule @job_name = '数据处理', 
    @name = '时间安排',
    @freq_type=4,   --4 每天,8 每周,16 每月
    @freq_interval=1, --作业执行的天数
    @freq_subday_type=0, --是否重复执行,0x1 在指定的时间, 0x4 分钟, 0x8 小时 
    @freq_subday_interval=1,  --重复周期
    @freq_recurrence_factor=0, --重复执行,则设置为1,否则设置为0
    @active_start_time = 00000 --0点开始执行-- 添加目标服务器
    EXEC msdb.dbo.sp_add_jobserver 
    @job_name = '数据处理' ,
    @server_name = N'(local)'
      

  9.   

    让Windows的计划任务在3点准时执行你的程序。