Как установить таймеры в приложении WinRT?

Я пытаюсь установить Timer в своем приложении для Windows Store.

    public void Start_timer()
    {

        Windows.UI.Xaml.DispatcherTimer timer = new DispatcherTimer();           
        timer.Tick += new Windows.UI.Xaml.EventHandler(timer_Tick);
        timer.Interval = new TimeSpan(00, 1, 1);
        bool enabled = timer.IsEnabled;              // Enable the timer
        timer.Start();                              // Start the timer      
      }

При нажатии кнопки я вызываю метод выше, чтобы установить этот таймер. Но когда установлен Eventhandler для Tick, я получаю ошибку "Попытка чтения или записи защищенной памяти. Это часто свидетельствует о том, что другая память повреждена".

Нужно ли обрабатывать таймеры по-разному в приложениях Windows Store?

Ответ 1

Решение состоит в том, чтобы вывести таймер из метода, например,

private DispatcherTimer timer = new DispatcherTimer();

и установите его в ctor

public TheClass()
{
    timer.Tick += timer_Tick; 
    timer.Interval = new TimeSpan(00, 1, 1);
    timer.Start();
}

Трудно сказать, в чем причина без полного кода, но это может быть поведение timer_Tick.