可能重复:
windows service vs scheduled task
Windows Service Vs Simple Program
我正在尝试创建一个定期运行的程序(例如每5分钟运行一次),或让程序运行并让它在其中执行该功能(每5分钟一次)。
该程序是在数据库执行时从数据库中获取数据,然后将其写入(现在)说info.txt文件(此处不包含敏感内容)。每次写入文件时,都应覆盖文件中的现有信息。
该程序也应该在Windows启动时自动启动。 (因此无需登录机器并执行.exe [如果它是普通程序而非服务])
在它执行程序的时间段之间无关。
因此,我应该将此程序作为Windows服务运行,还是应该使用任务计划程序定期启动程序来执行此操作? 我的目标是让这个程序尽可能顺利运行而不会堵塞资源。 (例如,它不应该超过cpu的5%)
我希望我的问题很清楚。
答案 0 :(得分:9)
我会选择由任务调度程序触发的应用程序。您唯一需要担心的是运行应用程序的单个实例。
您可以将任务设置为在特定用户帐户下运行,即使用户未登录也可以运行。有许多事件可以触发任务明星,如“Windows start”,“System Idle”......
其他优点是:如果发生崩溃,您可以将任务计划程序设置为向您发送电子邮件或以多种方式提醒您。您可以控制应用程序的“退出代码”,并向任务计划程序发出信号,告诉您该怎么做。
任务调度程序提供了许多正面功能,但没有多少人使用它们。
答案 1 :(得分:0)
我建议使用Windows服务。创建两者并比较资源使用情况可能是个好主意吗?
答案 2 :(得分:0)
我实际上建议根据您希望运行的任务的要求进行操作。我通常将计划服务的大多数功能构建到单个类库中,然后将其包装在控制台应用程序中以启动和调试。如果满意的话,我将它包装在Windows服务中并忘记它。
使用控制台应用程序的注意事项:
使用窗口服务的注意事项
..还有很多需要考虑的问题,但是编码是正确的,你可以先从一个开始,然后在你对它有信心时转到第二个。