Как остановить DispatcherTimer изнутри Try - Catch? - PullRequest
0 голосов
/ 20 января 2010

Пожалуйста, помогите мне понять, как я мог остановить попытки выполнения MethodOne() внутри dispatcherTimer.Tick обработчика событий WPF DispatcherTimer после первой неудачной попытки сделать это.

        TimeSpan ts = new TimeSpan(0, 0, 5);
        DispatcherTimer dispatcherTimer = new DispatcherTimer();
        dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
        dispatcherTimer.Interval = ts;
        dispatcherTimer.Start();
 ...

    private void dispatcherTimer_Tick(object sender, EventArgs e)
    {           
        try
        {
           MethodOne()
        }
        catch (Exception)
        {
            // Here I would like prevent code from trying to execute MethodOne()
        }  
    }

Я хотел бы установить некоторую блокировку или остановить таймер, но, пытаясь это сделать, я столкнулся с проблемами видимости другого кода внутри конструкции Try-Catch и не уверен, как правильно ее преодолеть.

1 Ответ

3 голосов
/ 20 января 2010

Вот для чего аргумент "отправитель":

private void dispatcherTimer_Tick(object sender, EventArgs e)
{           
    try
    {
       MethodOne()
    }
    catch (Exception)
    {
        (sender as DispatcherTimer).Stop();
    }  
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...