Я использую DispacherTimer для автоматического сохранения файла. Код подобен следующему:Почему событие DispacherTimer.Tick происходит два раза?
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 (...) называется дважды. В обоих вызовах стек вызовов кажется одинаковым. Где моя ошибка?
Любая помощь приветствуется. Спасибо.
А вы * абсолютно уверены * 'beginAutoSave' только выполняет один раз? Что произойдет, если вы установите там точку останова? Можете ли вы воспроизвести это в короткой, но полной программе? –
Где код, в котором вы вызываете 'beginAutoSave()'? – Saggio
Ничего себе, вы догадываетесь, это правильно. Выполняется дважды, хотя я не знаю, почему !!! В любом случае спасибо за помощь. – user3083911