Windows服务在一周内运行一次

时间:2017-09-15 06:02:13

标签: c# windows vb.net web-services

如何让Windows服务在每个星期一上午12点运行

请指导我。

我试过跟随一个..

 protected void InitializeTimer()
    {            
        if (timer1 == null)
        {
            timer1 = new Timer();
            timer1.AutoReset = true;
            var todayInWeek = DateTime.Now.Date.DayOfWeek;
            DateTime _scheduleTime = DateTime.Parse(System.Configuration.ConfigurationManager.AppSettings["ScheduledTime"]);
            if (todayInWeek == DayOfWeek.Monday)
            {
                timer1.Elapsed += new ElapsedEventHandler(schedular());
            }

        }           
    }

    private void schedular(object sender, ElapsedEventArgs e)
    {
        try
        {

        }
        catch (Exception ex)
        {

        }
    }

2 个答案:

答案 0 :(得分:0)

正如人们在评论中所说,创建一个简单的控制台应用程序,然后安排任务。

要启动Task Scheduler,只需在Windows搜索栏中输入Task SchedulerTaskschd.msc即可。

然后在右侧选择Create Task...。将它指向您的控制台应用程序,然后创建一个新的触发器,表明它应该每周一在12.00运行,如下所示:

enter image description here

有关在Task Scheduler

中创建任务的详细信息

https://technet.microsoft.com/en-us/library/cc748993%28v=ws.11%29.aspx?f=255&MSPPError=-2147217396

答案 1 :(得分:0)

您可以使用Topshelf和Quartz.net进行调度 - 您可以创建一个控制台应用程序,它将作为Windows服务安装,然后将其配置为每24小时运行一次。如果您需要更改调度,那么它将非常灵活 - 我通过Windows GUI发现调度任务很笨重。