C# 如何在.NET中实现夜间进程?

C# 如何在.NET中实现夜间进程?,c#,.net,scheduled-tasks,C#,.net,Scheduled Tasks,我每天晚上都要执行一系列任务 这些任务依次包括查询数据库、移动然后重命名一些图像以及更新数据库表。我本来打算创建一个SQL Server作业并使用xp_cmdshell来移动文件,但经过一番研究后,我决定不这么做 作为.NET应用程序实现此功能的最佳方法是什么?我应该创建Windows服务吗?计划每晚运行一次的控制台应用程序?还有什么我都不知道的很酷的方式吗?你正在寻找的很酷的方式是。它基本上是.NET的cron作业 我只使用在我使用的服务器上运行的任务调度器来完成这项工作。我只是将它设置为在1

我每天晚上都要执行一系列任务

这些任务依次包括查询数据库、移动然后重命名一些图像以及更新数据库表。我本来打算创建一个SQL Server作业并使用xp_cmdshell来移动文件,但经过一番研究后,我决定不这么做


作为.NET应用程序实现此功能的最佳方法是什么?我应该创建Windows服务吗?计划每晚运行一次的控制台应用程序?还有什么我都不知道的很酷的方式吗?

你正在寻找的很酷的方式是。它基本上是.NET的cron作业

我只使用在我使用的服务器上运行的任务调度器来完成这项工作。我只是将它设置为在11:30到12:30之间的随机时间运行。Kelloti的想法可能更令人印象深刻。

我通常只是作为一个调度控制台应用程序来完成这项工作。也许我很无聊…

我通常把这类事情作为一项计划任务来做。如果是.Net/C#console应用程序,请不要写入console.Out或console.Error(计划的任务几乎无头运行)。而是使用log4net并配置一个appender来写入日志文件。您还可以配置另一个appender将错误记录到windows事件日志中


当然,更快、更简单的方法是以perl脚本而不是编译代码的形式编写作业,并对其进行调度。

我在使用任务调度器方面取得了很大成功。它有大量的定制,近乎吓人。我想试一试。

如果您想要预定任务,正如您所标记的那样,预定任务有什么问题吗?我会使用久经考验的Windows任务调度器启动一个.NET控制台应用程序。它不一定非得性感才能起作用:)我同意。。。为什么要让你的机器做任何多余的事情。。。一个简单的控制台应用程序就是最好的选择。只有在一天中短时间内有事情发生时,服务才有意义。