1

我现在正在做几个项目,我真的希望有某种组件可以指定时间和日期,然后执行某种方法。

DateTime date = new DateTime(x,x,x,x,x,x);
ScheduledMethod sMethod = new ScheduledMethod(date, [method delegate of some sort]);

\\at the specified date, sMethod invokes [method delegate of some sort]

我知道我可以将 Windows Workflow Foundation 作为一个长期运行的进程来执行此操作,这对某些事情有好处,但有其他选择吗?工作流程的细节并不完全直截了当,能够为轻量级任务部署更简单的东西会很好。例如,每天检查一次网络文件夹并删除任何超过 30 天的文件的方法。我意识到这可能是天方夜谭,但这对于自动化某些日常维护任务(计划的 sql 操作、文件系统清理、例行电子邮件发送等)非常有用。它不一定必须是.Net,但这就是我来自的地方。有任何想法吗?

4

4 回答 4

3

试试windows任务调度器。用 C# 编写一个程序来执行所需的任务,然后在任务调度程序中安排它以指定的时间间隔运行。对于从文件夹中删除文件之类的事情,这非常有效。

于 2011-01-14T14:50:20.203 回答
3

您可以部署Windows 服务Windows 计划任务

另外,请参阅这个SO question。

于 2011-01-14T14:50:30.447 回答
2

我通常为该任务制作一个控制台应用程序,并将其配置为 Windows 中的计划任务。这通常效果很好。向应用程序添加一些不错的日志记录,以便在出现任何问题时以简单的方式进行故障排除。

于 2011-01-14T14:50:47.250 回答
1

Microsoft 有非托管代码的任务计划程序接口http://msdn.microsoft.com/en-us/library/aa383614(v=VS.85).aspx。但是,如果您需要托管库,您可以使用 Microsoft Task Scheduler http://www.codeproject.com/KB/cs/tsnewlib.aspx的包装器或 .NET QuartzNet的企业作业调度器。

于 2011-01-14T15:02:31.013 回答