将参数传递给c#中的windows服务

时间:2010-08-12 17:18:03

标签: c#

我正在创建一个必须在特定日期和时间运行的Windows服务。我正在使用XML文档传递这些变量。这是我传递值的代码

   static void Main()
    {
        ServiceBase[] ServicesToRun;

        Service1= new Service1();          

        //Load setting from xml and assign to variables "daysToExec" and "timeToExec"
        LoadSettings();
        Service1.daysToExecute = daysToExec;
        Service1.timeToExecute = timeToExec;
        ServicesToRun = new ServiceBase[] { Service1 };
        ServiceBase.Run(ServicesToRun);          

    }

Service1.cs中OnStart()的代码

    protected override void OnStart(string[] args)
    {
     timer1.Enable = true;
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        foreach (string DayToRun in daysToExecute)
        {
            if (DateTime.Now.DayOfWeek.ToString().ToUpper().Equals(DayToRun.ToUpper())  && DateTime.Now.ToShortTimeString().Equals(timeToExecute)) 
            {
                Process.Start("Path to executable");
            }
        }
    }

但这不是启动可执行文件。这段代码有问题吗。

感谢。

1 个答案:

答案 0 :(得分:0)

我得到了答案。我正在使用System.Windows.Forms.Timer,由于某种原因,它根本没有执行timer_tick方法。使用System.Timers.Timer后,它工作正常。

感谢您的评论。