方法/任务调度器c#

方法/任务调度器c#,c#,C#,我用的是C#。 我认为这是一个很难回答的问题,但无论如何我都在努力。 我有一个C#项目,方法是:X(),Y(),Z()。 我正在寻找一个每天/每小时在不同时间运行我的方法(X(),Y(),Z())的任务计划程序。 最好的方法是什么?只需创建一个控制台应用程序,该应用程序接受单个参数(想想myapp.exe x),该参数将调用相应的函数。然后向Windows Scheduler添加一些计划任务,您就可以完成所有设置。最简单的方法是使用现有的库。Scott Hanselman不久前有一个关于这个的

我用的是C#。
我认为这是一个很难回答的问题,但无论如何我都在努力。
我有一个C#项目,方法是:
X(),Y(),Z()

我正在寻找一个每天/每小时在不同时间运行我的方法(X(),Y(),Z())的任务计划程序。

最好的方法是什么?

只需创建一个控制台应用程序,该应用程序接受单个参数(想想
myapp.exe x
),该参数将调用相应的函数。然后向Windows Scheduler添加一些计划任务,您就可以完成所有设置。

最简单的方法是使用现有的库。Scott Hanselman不久前有一个关于这个的博客

注意:本文提到asp.net,但是提到的调度程序也可以通过控制台或Windows应用程序运行


我个人使用的Fluent调度器()现在已经更新为支持.NETCore。它很容易使用,如果您有简单的调度要求,可能就是我推荐的。

如果您想每小时、每天或任何其他明确的时间段运行一些代码,那么最好的选择是创建一个控制台应用程序,并使用Windows任务调度程序来运行此应用程序


如果这段时间不清楚,并且取决于某些逻辑或计算,那么最好的选择是使用始终运行的Windows服务,它将在必要时运行您的方法。

我将创建一个Windows服务,在Windows服务中,您可以通过计时器检查调用您的方法。(我们在老公司就这样做了)

如果您的应用程序始终运行,您可以尝试使用响应式扩展:

Observable.Timer(TimeSpan.FromSeconds(5)).Subscribe(x=>X());

查看此处了解更多信息

OP未指定web应用程序。一个简单的计划作业就足够了,它提供了更多的功能(例如触发器)。Fluent Scheduler或Quartz.NET适用于windows服务我没有提到任何web应用程序。实际上,我通过一个持续运行的控制台应用程序使用Fluent调度程序。另一个人所说的关于使用windows任务调度的话是好的。如果您将调度写入程序中,这意味着您可以在错误处理和作业之间的依赖性方面做得更多。然而,对于OP的要求来说,这一切可能都是多余的。谢谢。我在原始答案中做了一个注释来澄清。为什么不在Windows任务计划程序中创建一个计划任务呢?如果需要框架,请检查Quartz.net的Windows任务计划程序。