Así que una etiqueta aquí («»). Cuando el botón (button1) se hace clic en el texto de la etiqueta se convierte en «Test». Después de 2 segundos, el texto se establece de nuevo en «». He hecho 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, aunque, estoy curioso acerca de lo que es trabajar en un método asincrónico.

Mi código tiene este aspecto en la actualidad:

private void button1_Click(object sender, EventArgs e)
{
    label1.Text = "Test";
    MyAsyncMethod();
}

public async Task MyAsyncMethod()
{
    await Task.Delay(2000);
    label1.Text = "";
}

Esto no funciona, aunque.

  • Acabo de probar tu método y funciona bien, al hacer clic se cambia a «Prueba» 2 segundos más tarde se cambia a «»
  • Podría exponer «Esto no funciona»? Lo que se espera y lo que observaste? Errores del compilador? Excepción seguimientos de pila?
InformationsquelleAutor jacobz | 2013-06-01

1 Comentario

  1. 87

    Como he mencionado, el código funcionó bien para mí, Pero tal vez intente configurar el controlador async y la ejecución de la Task.Delay allí.

    private async void Button_Click_1(object sender, RoutedEventArgs e)
    {
        label1.Text = "Test";
        await Task.Delay(2000);
        label1.Text = "";
    }
    • Sí, creo que fue realmente difícil decir cuál era mi problema. Sin embargo, esta parece funcionar sin ningún problema 🙂 Gracias y voy a intentar palabra futuro de las preguntas más cuidado.
    • Para aquellos que no deseen crear un async función: Task.Delay(2000).Wait();
    • Tienes razón, pero eso haría que el GUI hilo se bloquea durante 2 segundos. Eso no es una buena solución.
    • Verdadero – sólo recientemente se dio cuenta de esto, buen punto .Wait() no es preferible, para la gran mayoría de los casos.

Dejar respuesta

Please enter your comment!
Please enter your name here