c# – UI线程中Task.Wait的替代方案
发布时间:2020-12-15 06:18:41 所属栏目:百科 来源:网络整理
导读:我知道在UI线程中调用Task.Wait是不好的.它导致僵局.请参阅 Constructor invoke async method Await,and UI,and deadlocks! Oh my! 请使用以下代码: public MainPage() { this.InitializeComponent(); step0(); step1(); } private async Task step0() { aw
我知道在UI线程中调用Task.Wait是不好的.它导致僵局.请参阅
Constructor invoke async method Await,and UI,and deadlocks! Oh my! 请使用以下代码: public MainPage() { this.InitializeComponent(); step0(); step1(); } private async Task step0() { await Task.Delay(5000); System.Diagnostics.Debug.WriteLine("step 0"); } private async Task step1() { await Task.Delay(3000); System.Diagnostics.Debug.WriteLine("step 1"); } } 如何确保在“步骤1”之前始终打印“步骤0”?使用Task.Wait会导致死锁.这是Windows应用商店应用 解决方法
您可以使用Task.ContinueWith将任务链接在一起,以便它们按顺序发生.
public MainPage() { this.InitializeComponent(); step0().ContinueWith(t => step1()); } 此外,阿列克谢的评论是正确的. Task.Wait将阻止UI线程.死锁是另一回事. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |