Использование async для сна в streamе без замораживания

Итак, я здесь ярлык (“”). Когда нажата кнопка (кнопка1), текст ярлыка превращается в «Тест». Через 2 секунды текст возвращается обратно в “”. Я сделал эту работу с таймером (который имеет интервал 2000):

private void button1_Click(object sender, EventArgs e) { label1.Text = "Test"; timer.Enabled = true; } private void timer_Tick(object sender, EventArgs e) { label1.Text = ""; } 

Это работает; однако, мне любопытно, что он работает в асинхронном методе.

Мой код выглядит так:

 private void button1_Click(object sender, EventArgs e) { label1.Text = "Test"; MyAsyncMethod(); } public async Task MyAsyncMethod() { await Task.Delay(2000); label1.Text = ""; } 

Однако это не работает.

    Как я уже говорил, ваш код работал отлично для меня, но, возможно, попробуйте настроить обработчик на async и запустить Task.Delay .

     private async void Button_Click_1(object sender, RoutedEventArgs e) { label1.Text = "Test"; await Task.Delay(2000); label1.Text = ""; }