【问题标题】:Make MyFunction() trigger every minute让 MyFunction() 每分钟触发一次
【发布时间】:2018-10-15 18:44:23
【问题描述】:

我有这个 C# 代码,我希望它每分钟触发一次。

private void MyFunction()
{
    if (DateTime.Now.Hour == 6 && ranalarm == false)
    {
        ranalarm = true;
        Event();
    }
    else if (DateTime.Now.Hour != 6 && ranalarm == true)
    {
        ranalarm = false;
    }
}

如何使函数MyFunction() 在 C# 中每分钟触发一次? 我尝试使用计时器,但 Visual Studio 说它与我的 System.Windows.Forms 冲突。

【问题讨论】:

  • 呃,System.Windows.Forms.Timer 呢?
  • 如何创建 Timer 类的实例以及如何调用 Tick 事件?

标签: c# .net timer


【解决方案1】:

您可以使用System.Threading.TimerTimeSpan。像这样的:

TimeSpan start = TimeSpan.Zero;
TimeSpan minutes = TimeSpan.FromMinutes(1);

var timer = new System.Threading.Timer(c =>
{
    MyFunction();
}, null, start, minutes);

【讨论】:

    【解决方案2】:

    这是我的解决方案。没有使用线程。简单容易,但可以完成工作

    Timer testTimer;
    
    public void initTimer()
    {
        testTimer = new Timer();
        testTimer.Tick += testTimer_tick ;
        testTimer.Interval = 1000; //timer interval in mili seconds;
        testTimer.Start();
    }
    
    public void testTimer_tick(object sender, EventArgs e)
    {           
        MyFunction(); // your function comes here           
    }
    

    您可以复制并粘贴。 接下来只需在表单加载事件中调用initTimer() 方法即可。

    【讨论】:

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