-1

我使用 DispacherTimer 自动保存文件。代码如下:

void beginAutoSave()
{
    _autoSaveDispacherTimer = new DispatcherTimer();
    _autoSaveDispacherTimer.Interval = TimeSpan.FromMinutes(1);
    _autoSaveDispacherTimer.Tick += new EventHandler(onAutoSaveTick);
    _autoSaveDispacherTimer.Start();
}

void onAutoSaveTick(object sender, EventArgs e)
{
    // I save the file with a randomly generated file name
}

我只调用一次beginAutoSave()。问题是在每个 Tick 事件中,都保存了两个不同的文件。换句话说,onAutoSaveTick(...)方法被调用了两次。两个调用中的调用堆栈似乎相同。我的错误在哪里?

任何帮助表示赞赏。谢谢。

4

1 回答 1

1

onAutoSaveTick将被调用after every one minutestop explicitly如果你想执行一次,你需要定时器。

MSDN文档 -

Tick 事件在 Interval 中指定的时间过后触发。Tick 继续以相同的间隔触发,直到调用 Stop 方法。

在刻度处理程序本身中执行此操作:

void onAutoSaveTick(object sender, EventArgs e)
{
    // I save the file with a randomly generated file name
    _autoSaveDispacherTimer.Stop();
}
于 2013-12-18T18:28:28.573 回答