繁体   English   中英

在不阻塞 UI 线程的情况下启动并等待新线程

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM