2013-02-28 133 views
0
<Day> 
<Monday>true</Monday> 
<Tuesday>false</Tuesday> 
<Wednesday>true</Wednesday> 
<Thursday>false</Thursday> 
<Friday>true</Friday> 
<Saturday>false</Saturday> 
<Sunday>true</Sunday> 
</Day> 
<Time> 
<time>17:18</time> 
</Time> 

我有上面的xml使用我想通过Windows服务运行特定的任务。例如:Windows服务应在周一和周日下午17:18打开记事本。C#运行使用Windows服务和XML的计划任务

请让我知道如何在C#中实现这一点。如何创建Windows服务并要求该服务查看上述XML并在达到预定时间和日期时启动程序?

回答

1

考虑使用调度程序如Quartz.net而不是构建定制的调度程序。它可以为您节省一些时间和精力。

请注意,Quartz.net使用CRON风格的调度语法,它与您的XML不同。但它仍然是可配置的。

+0

我只能使用XML进行调度。请让我知道你是否有任何其他想法。 – user004 2013-02-28 06:41:06

0

This tutorial来自CodeProject介绍了如何在C#中创建Windows服务。

我建议Quartz.net进行调度。如果您已经习惯使用自定义XML解决方案,并且使用.NET 3.5或更高版本,请参阅LINQ to XML

根据您希望执行该服务的程序(即像记事本这样的GUI应用程序),您可能需要在Vista和更高版本上考虑Session 0 Isolation

1

我建议2种方法: 1.如果使用XML并不重要,那么更好的方法是创建一个Windows计划任务并根据需要进行配置。之后,您可以创建一些控制台应用程序,它将按照配置的时间表运行。 2.如果必须以任何方式使用XML,您可以创建一个每5分钟运行一次的Windows服务。每次必须读取XML的内容并将其与您的系统的DateTime.Now进行比较。

你可以在互联网上找到很多关于如何创建Windows服务的文章。例如这一个http://www.codeproject.com/Articles/14353/Creating-a-Basic-Windows-Service-in-C