【问题标题】:TaskScheduler vs Timer for scheduling tasks in C#: When to use? [closed]TaskScheduler vs Timer 在 C# 中调度任务:何时使用? [关闭]
【发布时间】:2020-01-02 06:12:31
【问题描述】:

最近我正在学习和尝试C#,关于C# 中的任务调度,我有一些令人困惑的地方需要澄清。

据我了解,我了解到C#中的任务调度可以通过TimerTaskScheduler来完成。

我关注了这些文章:create task scheduler using TaskScheduler class, create task scheduler using Timers

所以我的困惑是我们什么时候应该实际使用TimerTaskScheduler 来安排任务?

谢谢!

【问题讨论】:

  • 请通过提供反馈帮助我改进,如果你觉得投反对票:) 这对我有很大帮助!谢谢
  • 取决于它是否长时间运行(天)。如果是这样,请使用 Windows 任务计划程序。没有额外的浪费进程总是在运行。没有浪费线程。 COM 类型周围有很好的 .NET 包装器。
  • @MickyD 谢谢你的回答 :) 所以 TaskScheduler 对长时间运行的进程有好处吗?还是不行?
  • 谢谢,虽然它不是像下面 TheGeneral 的好答案。当您有需要定期启动的东西并且程序本身在完成时关闭时,任务计划程序非常有用。如果程序永久运行,那么 TS 可能就没那么有用了

标签: c# timer scheduled-tasks taskscheduler


【解决方案1】:

忘记 C# 中的 TaskScheduler 类,它与 tasksthread-pool 上的调度方式有关,但不要与 混淆em>Windows 任务计划程序,它在 Windows 操作系统上运行代码,并且与编写它的语言无关。

所以你剩下的是

  1. Timers(不太适合长时间准确调度)。
  2. Tasks 有延迟(需要大量工作才能准确地创建实际时间表)。
  3. 其他花哨的东西,如 Reactive Extensions(与上面类似)。
  4. 作业调度框架(如quartz.net),它为您提供了在任何时间范围内安排任务运行一次或定期运行所需的所有工具,以及您希望在C# 中的任何类型的调度。

对于初学者来说,计时器可能是您想要的地方。

【讨论】:

    猜你喜欢
    • 2018-08-04
    • 1970-01-01
    • 2011-05-03
    • 2023-04-09
    • 2010-10-05
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    • 1970-01-01
    相关资源
    最近更新 更多