async - task sleep c#
Usando async para dormir en un hilo sin congelar (1)
Como mencioné, su código funcionó bien para mí, pero tal vez intente configurar su controlador en async
y ejecutar el Task.Delay
allí.
private async void Button_Click_1(object sender, RoutedEventArgs e)
{
label1.Text = "Test";
await Task.Delay(2000);
label1.Text = "";
}
Así que tengo una etiqueta aquí (""). Cuando se hace clic en el botón (button1), el texto de la etiqueta se convierte en "Prueba". Después de 2 segundos, el texto vuelve a establecerse en "". Hice este trabajo con un temporizador (que tiene un intervalo de 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 = "";
}
Esto funciona; Sin embargo, tengo curiosidad por hacerlo funcionar en un método asíncrono.
Mi código se ve así en este momento:
private void button1_Click(object sender, EventArgs e)
{
label1.Text = "Test";
MyAsyncMethod();
}
public async Task MyAsyncMethod()
{
await Task.Delay(2000);
label1.Text = "";
}
Aunque esto no funciona.