[英]Start and wait for new thread without blocking UI thread
我有一个不能异步运行的方法。 为了不阻塞UI线程,我想新开一个线程,运行里面的方法。 但是,该线程必须等待根据方法执行的附加代码才能工作。 无法异步运行的方法转换文件,需要一些时间,具体取决于文件的大小。 但我希望窗口保持可用,以便 UI 线程不被阻塞。 我已经在互联网上搜索过,但没有找到合适的。
async void button1_Click(....)
{
label1.Text = "busy...";
await Task.Run(() => { RunOldCode(); });
label1.Text = "done."; // safe to use the UI
}
请注意, async void
应仅用于(简单)事件处理程序。 在大多数其他情况下这是有问题的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.