【问题标题】:How to call a method once every week using c# [duplicate]如何使用c#每周调用一次方法[重复]
【发布时间】:2015-05-11 15:43:40
【问题描述】:

谁能说,'如何在 C# 控制台应用程序中每周调用一次特定方法'

谢谢。

【问题讨论】:

  • “每周一次”?这肯定是矛盾的。或者你的意思是“每周一次”和“每周一次”一样(顺便说一下,这与“每周”相同)。
  • Waqas,我把它留给 OP 来澄清,但是,如果你要跳进去并假设一种或另一种方式,你可能也应该更改标题 :-)
  • 您可以使用windows任务调度器,将其安排为每周执行一次。

标签: c#


【解决方案1】:

如果您只想从外部应用程序启动代码,Windows 任务计划程序是一个选项。它允许您自动启动可执行文件。

【讨论】:

    【解决方案2】:

    一个控制台应用程序感觉是一种脆弱的方式来做到这一点。我建议您将任务的调度与任务本身分开。 Windows 以 Task Scheduler 的形式内置了调度支持(与 .Net TPL 中的同名完全不同)。

    因此,构建您的控制台应用程序并安排它每周运行一次。如果它需要在一周内保持状态,则将其实现为可以继续运行的 Windows 服务。

    这里有一个很好的 Task Scheduler API 包装器:https://taskscheduler.codeplex.com/,因此您甚至可以从 .Net 配置计划任务。

    【讨论】:

      【解决方案3】:

      您有多种选择。

      我使用的是将应用程序添加到任务调度程序。在那里您可以指定应该执行的时间间隔。 这种方法的缺点是你不能在另一个时间间隔内执行任何其他方法,除非你也将它们添加到他们自己的应用程序中。

      第二个选项是使用System.Threading.Thread.Sleep 如果您想使用它,只需执行以下操作:

      while(true)
      {
      //execute a method
      System.Threading.Thread.Sleep(1000*60*60*24*7);
      }
      

      这里的缺点是如果你想在睡眠期间执行其他方法,你必须使用线程。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-01
        • 2011-02-16
        相关资源
        最近更新 更多