c# - 如何使用 .NET 框架设置作业调度?

标签 c# .net windows scheduling job-scheduling

<分区>

如何使用 C#/.NET 进行简单的作业调度?

假设我有一个方法(属于某个类),我想每天每小时每周 等自动运行。

有没有简单的方法可以做到这一点?

最佳答案

您可以通过三种方式在 .net 中执行此操作

1) 创建一个windows服务。如果,在 Windows 上(假设您使用的是 Windows 7),您点击开始按钮并输入“查看本地服务”,然后点击结果,您在这里看到的一切都是 Windows 服务。当您编写 Windows 服务代码时,它基本上是一个包含在代码中的控制台应用程序,用于安装服务并设置调度时间。有很多关于如何创建 Windows 服务的教程。这是 Microsoft 的指南:http://msdn.microsoft.com/en-us/library/zt39148a(v=vs.80).aspx

2) 创建一个“exe”应用程序,然后放入“任务计划程序”。再次点击开始按钮并搜索“任务计划程序”。这与 Windows 服务的不同之处在于,您可以从任务计划程序控制计划,而不是在您的应用程序中。此外,过去你必须在重新启动时重新启动计划任务,因为可以将 Windows 服务设置为在操作系统启动时启动(我不确定这个规则是否仍然适用,我没有使用任务调度程序一阵子)。这是微软关于如何执行此操作的指南:http://windows.microsoft.com/en-GB/windows7/schedule-a-task

3) 您还可以查看 Quartz.NET,它是一个企业级作业调度框架。我已经用了好几次了,效果很好。 Quartz.NET 可以在这里找到:http://quartznet.sourceforge.net/

您可能还想看看“Topshelf”。这使得开发 Windows 服务更容易:http://topshelf-project.com .我自己没有使用过它,但认识很多人都使用过并且他们推荐了它。

在向问题添加更多详细信息后进行编辑

如果您正在寻找一种可以使用某种 cron 作业等价物调用类方法的方法,则没有办法做到这一点。您需要使此类成为应用程序 (exe) 的一部分,然后使用上述方法之一来安排该 exe 的执行。

最快和最简单的方法(不一定是最好的,具体取决于您的应用程序需求)是创建一个简单的控制台应用程序 (http://msdn.microsoft.com/en-us/library/ms438026(v=office.14).aspx)。将您正在谈论的类复制到其中,然后在应用程序的主要方法中调用您想要调度的方法。然后如上所述使用任务调度程序。

希望对您有所帮助。

关于c# - 如何使用 .NET 框架设置作业调度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13788488/

相关文章:

c# - UWP ListView 数据模板绑定(bind)

C# - 流问题

c# - 使用命令行构建 C#/.NET 时如何设置配置?

c# - .NET 线程 - 这是处理返回结果的两个线程的合适方法吗?

windows - 使用 powershell 和 windows 窗体将进度条插入状态栏面板

windows - 为什么程序不直接终止并重新启动 explorer.exe?

c# - 从 silverlight 导航和发布数据

c# - 重命名命名空间后无效的 .resx 文件

mysql - docker compose up后无法连接到mysql db

c - 函数地址错误