使用异步在线程中睡眠而不冻结
所以我在这里贴了一个标签(“”)。 单击按钮(按钮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
。
上述就是C#学习教程:使用异步在线程中睡眠而不冻结分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
private async void Button_Click_1(object sender, RoutedEventArgs e) { label1.Text = "Test"; await Task.Delay(2000); label1.Text = ""; }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/962168.html