Мэтт поднимает вопрос о том, что к тому, как вы прикрепляете анонимный метод, нет простого способа отсоединить его. Вот общий шаблон, который вы можете использовать для отключения при необходимости.
private void MyFunction()
{
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = new TimeSpan(0, 0, 1);
EventHandler eh = null;
eh = (object sender, object e) =>
{
timer.Tick -= eh;
timer.Stop();
// Some code here
};
timer.Tick += eh;
timer.Start();
}
Однако в этом конкретном случае нет ничего плохого в том, как работает ваш исходный код, поскольку таймер становится доступным для сбора, как только он останавливается.