C# 为什么dispatchertimer.Tick事件发生两次?
我使用dispatchertimer自动保存文件。代码如下所示: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
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()方法。