jac*_*obz 41 c# sleep asynchronous freeze
所以我在这里贴了一个标签("").单击按钮(按钮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 = "";
}
Run Code Online (Sandbox Code Playgroud)
这有效; 但是,我很好奇它使它在异步方法中工作.
我的代码目前看起来像这样:
private void button1_Click(object sender, EventArgs e)
{
label1.Text = "Test";
MyAsyncMethod();
}
public async Task MyAsyncMethod()
{
await Task.Delay(2000);
label1.Text = "";
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用.
sa_*_*213 87
正如我所提到的,你的代码对我来说很好,但也许尝试设置你的处理程序async
并Task.Delay
在那里运行.
private async void Button_Click_1(object sender, RoutedEventArgs e)
{
label1.Text = "Test";
await Task.Delay(2000);
label1.Text = "";
}
Run Code Online (Sandbox Code Playgroud)