C #, запуск различных событий с таймером. - PullRequest
0 голосов
/ 08 мая 2018

Я хочу использовать таймер, чтобы вызвать событие после 10 секунд нажатия кнопки, затем автоматически запустить другое событие через 20 секунд, а затем остановить таймер через 30 секунд. Буду признателен за любую оказанную помощь.

1 Ответ

0 голосов
/ 08 мая 2018

Вот и мы (WPF):

async void OnButtonClick(object sender, RoutedEventArgs e)
{
    var cts = new CancellationTokenSource();
    void OnCancel(object _, RoutedEventArgs __) => cts.Cancel();
    CancelButton.Click += OnCancel;

    try
    {
        await Task.Delay(TimeSpan.FromSeconds(2), cts.Token);

        // fire first event

        await Task.Delay(TimeSpan.FromSeconds(2), cts.Token);

        // fire second event

        await Task.Delay(TimeSpan.FromSeconds(2), cts.Token);

        // stop the timer (whatever it means)
    }
    catch (TaskCanceledException)
    {
        // handle cancelled
    }
    finally
    {
        CancelButton.Click -= OnCancel;
    }
}

Обновление: добавлена ​​отмена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...