每隔一分钟后在调度计中调用事件

时间:2017-07-04 02:34:43

标签: c# wpf xaml dispatchertimer

我创建了一个间隔一分钟的调度程序计时器,

DispatcherTimer dispatcherTimer = new DispatcherTimer();//creation of dispatchtimer

private void btnstart_Click(object sender, RoutedEventArgs e)
{
    dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
    dispatcherTimer.Start();
    dispatcherTimer.Interval = TimeSpan.FromMinutes(1);
}

当按钮点击计时器开始时,我在其中创建了一个事件。每隔一分钟就会调用一次事件。

private void dispatcherTimer_Tick(object sender, EventArgs e)
{
    if (dispatcherTimer.Interval == TimeSpan.FromMinutes(1))
    {
        //...
        //...
    }
}

但是,我的问题是,当我点击开始按钮时,它会在60秒之后转到事件(dispatcherTimer_Tick),它需要进行该事件,并且在每1分钟间隔后,它将调用该事件它正常工作。最初当我点击开始按钮时,它会突然调用该事件,但是我希望在60秒后(即1分钟后)需要调用该dispatcherTimer_Tick事件。

1 个答案:

答案 0 :(得分:2)

您的问题是您的代码正在执行:

//...
dispatcherTimer.Start();
dispatcherTimer.Interval = TimeSpan.FromMinutes(1);
//...

而不是:

//...
dispatcherTimer.Interval = TimeSpan.FromMinutes(1);
dispatcherTimer.Start();
//...  

在致电dispatcherTimer.Interval之前设置Start()