【问题标题】:function repetition every 15 minutes c# [closed]每15分钟重复一次函数c# [关闭]
【发布时间】:2017-06-13 09:35:23
【问题描述】:

我正在使用 c# 为 SAP B1 做一些掩码。

我需要知道如何创建一个函数,自动(例如每 15 分钟一次)获取一些数据并将其放入数据库。 该功能已经完成,但如何在后台创建自动执行?

最好的问候和提前感谢您的回复, 洛伦佐

【问题讨论】:

  • 使用某种计时器,或将程序作为计划任务运行。
  • 从我建议使用 Windows 计划任务的问题中,您的实现听起来很简单。
  • 这取决于:此应用程序是否更像一个脚本,即它运行、执行离散作业或测试子任务,然后停止?如果是这样,我会选择计划任务建议。如果这是一个应用程序,就像一个守护进程,它应该始终运行,即使它只是循环并做同样的事情,那么我会使用一个计时器。请记住,计划任务每​​次运行时都会产生不同的进程 ID,而带有计时器的守护程序将具有与它首次启动时相同的进程 ID。这对你来说可能很重要,也可能无关紧要。

标签: c# function background


【解决方案1】:

定时器是你所需要的:

var timer = new System.Threading.Timer(
    e => Method(),  
    null, 
    TimeSpan.Zero, 
    TimeSpan.FromMinutes(15));

这将每 15 分钟调用一次 Method()。

定时器信息:https://msdn.microsoft.com/en-us/library/system.threading.timer.aspx

【讨论】:

    【解决方案2】:

    您可以像@AmbroishPathak 建议的那样使用 Timer。此外,如 cmets 中所述,您可以使用 Windows Task Scheduler 来运行您的脚本或可执行文件。这样做的好处是进程在不工作时不会在后台运行。

    您可以查看如何安排任务here的详细信息。

    以下答案也描述了这一点:windows scheduler to run a task every x-minutes?

    为了总结那里接受的答案,您创建了每天运行一次的任务。之后,您可以双击任务以调出其属性窗口并转到“触发器”选项卡。在“高级设置”下,您应该能够将其设置为每 x 分钟运行一次。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 2012-06-30
      • 2017-07-08
      • 1970-01-01
      • 2017-05-09
      • 1970-01-01
      • 2017-03-14
      相关资源
      最近更新 更多