C# 为什么dispatchertimer.Tick事件发生两次?

C# 为什么dispatchertimer.Tick事件发生两次?,c#,wpf,dispatchertimer,C#,Wpf,Dispatchertimer,我使用dispatchertimer自动保存文件。代码如下所示: void beginAutoSave() { _autoSaveDispacherTimer = new DispatcherTimer(); _autoSaveDispacherTimer.Interval = TimeSpan.FromMinutes(1); _autoSaveDispacherTimer.Tick += new EventHandler(onAutoSaveTick); _au

我使用dispatchertimer自动保存文件。代码如下所示:

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
}
我只调用一次beginutosave()。问题是,在每个勾号事件中,会保存两个不同的文件。换句话说,onAutoSaveTick(…)方法被调用两次。两个调用中的调用堆栈似乎相同。我的错在哪里

感谢您的帮助。
谢谢。

自动保存勾选
将在每一分钟后调用一次
。如果要执行一次计时器,则需要显式停止计时器

根据文件-

在间隔中指定的时间过后触发勾号事件。 滴答声以相同的间隔继续发射,直到停止方法被激活 打电话来

在勾号处理程序本身中执行此操作:

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

您是否绝对确定
beginutosave
只执行一次?如果在其中放置断点会发生什么?你能在一个简短但完整的程序中重现这一点吗?你调用
beginutosave()
的代码在哪里?哇,你猜对了。它执行了两次,虽然我不知道为什么!!!不管怎样,谢谢你的帮助,谢谢你。乔恩是对的。这是一个愚蠢的错误。我执行了两次beginutosave()方法。