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

bor*_*ula 1 .net c# scheduled-tasks

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

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

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

每种方法的优缺点是哪些?

还有另一种方法吗?

提前致谢.

Not*_*tMe 5

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

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

  • +1.我的想法完全正确 对于每天一次的任务,任务调度程序比在代码中使用Timer更容易,更清晰.在进行故障排除时,编写服务也很痛苦 - 从Visual Studio中调试服务非常困难.(我确定有一种方法,但我没有找到一个像在Visual Studio中运行它一样简单).仅从编码/调试的角度来看,在这种情况下,我会回避服务.现在,如果它是每分钟甚至一小时一次,我可能会走另一条路线. (2认同)