我正在使用C#
我认为这是一个菜鸟问题,但无论如何我都会尝试
我有一个带有方法的C#项目:Map
。
我正在寻找一个任务调度程序,每天/每小时为我运行我的方法(X(),Y(),Z())在不同的时间。
最好的方法是什么?
答案 0 :(得分:4)
只需创建一个控制台应用程序,它接受一个可以调用相应函数的参数(想象myapp.exe x
)。然后将许多计划任务添加到Windows计划程序,您将全部设置。
答案 1 :(得分:3)
最简单的方法是使用现有的库。斯科特·汉塞尔曼(Scott Hanselman)有一段时间的博客http://www.hanselman.com/blog/HowToRunBackgroundTasksInASPNET.aspx。
注意:文章提到了asp.net但是提到的调度程序也可以通过控制台或Windows应用程序运行。
我个人使用现已更新的Fluent调度程序(https://github.com/fluentscheduler/FluentScheduler)来支持.net核心。它易于使用,如果您有简单的日程安排要求,可能就是我推荐的那个。
答案 2 :(得分:2)
如果您想每小时,每天或任何其他明确知道的时段运行一些代码,那么最好的选择是创建一个控制台应用程序并使用Windows任务计划程序来运行此应用程序。
如果这个时期不清楚并且取决于某些逻辑或计算,那么最好的选择是使用始终运行的Windows服务,它将在必要时运行您的方法。
答案 3 :(得分:1)
我会创建一个Windows服务,在Windows服务中,您可以使用计时器检查来调用您的方法。 (我们在旧公司这样做了)
答案 4 :(得分:1)
如果您的应用程序始终运行,您可以尝试使用响应式扩展程序:
Observable.Timer(TimeSpan.FromSeconds(5)).Subscribe(x=>X());
点击此处查看更多信息https://msdn.microsoft.com/en-us/library/hh242977(v=vs.103).aspx