执行计划任务的方法 - Windows / .NET

时间:2011-07-22 19:17:52

标签: c# .net scheduled-tasks

我的问题非常简单。 我有一个应该每天自动执行一次的应用程序。我之前没有这种情况的经验(前段时间我曾与IBM Control-M合作,但我猜它更完整,更复杂,更昂贵=)

我想到了两种可能的解决方案:

  • 在Windows任务计划程序中创建一个任务,该任务将执行该应用程序;
  • 将应用程序实现为可全天候运行的Window Service,但只会根据当前时间执行所需的操作。

每种方法的优点/缺点是什么?

还有其他办法吗?

提前致谢。

4 个答案:

答案 0 :(得分:5)

如果它每天只执行一次(或左右),那么就将它作为由Windows任务调度程序执行的常规命令行应用程序执行。任务调度程序已经具有确定何时启动程序,传入参数以及与任务调度相关的任何其他内容所需的所有UI。

将此类功能用作Windows服务的唯一真正原因是它需要比一分钟更高的执行分辨率。然而,Windows服务的主要缺点是你必须管理启动它的频率/时间的逻辑。另一个是应用程序始终在运行,如果您的代码出现问题,则可能会泄露内存。

答案 1 :(得分:1)

在Unix / Linux上,您将使用cron作业计划执行任务。 MS Windows版本称为任务计划程序,它已经是a service that run 24/7 and performs the needed actions depending on the time.

Create a repeating task with the Task Scheduler运行您的应用程序。创建,安装和配置服务应用程序并非易事。这是一个比创建标准表单或命令行应用程序更复杂的过程,无论如何你都不需要这样做。

答案 2 :(得分:0)

答案 3 :(得分:0)

另一个可能感兴趣的库是Quartz.NET