使MyFunction()每分钟触发一次

时间:2018-10-14 08:26:59

标签: c# .net timer

我有这个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冲突。

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:1)

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

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()方法即可。