58

所以我在这里打了一个标签(“”)。单击按钮 (button1) 时,标签文本变为“测试”。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 = "";
}

但这不起作用。

4

1 回答 1

123

正如我提到的,您的代码对我来说效果很好,但也许可以尝试将您的处理程序设置为asyncTask.Delay在其中运行。

private async void Button_Click_1(object sender, RoutedEventArgs e)
{
    label1.Text = "Test";
    await Task.Delay(2000);
    label1.Text = "";
}
于 2013-06-02T00:04:31.130 回答