我使用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(...)方法被调用两次。两个调用中的调用堆栈似乎相同。我的错误在哪里?
感谢任何帮助。 感谢。
答案 0 :(得分:1)
onAutoSaveTick
将被称为after every one minute
。如果要执行一次,则需要stop explicitly
计时器。
来自MSDN文档 -
在Interval中指定的时间过后,Tick事件将触发。 Tick继续在相同的Interval中触发,直到Stop方法为止 调用。
在tick处理程序中执行此操作:
void onAutoSaveTick(object sender, EventArgs e)
{
// I save the file with a randomly generated file name
_autoSaveDispacherTimer.Stop();
}