我的任务异步总是块UI [英] My async Task always blocks UI
本文介绍了我的任务异步总是块UI的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在一个WPF 4.5应用程序,我不明白为什么当我用的await +任务的UI被阻塞: P>
In a WPF 4.5 application, I don't understand why the UI is blocked when I used await + a task :
private async void Button_Click(object sender, RoutedEventArgs e)
{
// Task.Delay works great
//await Task.Delay(5000);
double value = await JobAsync(25.0);
MessageBox.Show("finished : " + value.ToString());
}
private async Task<double> JobAsync(double value)
{
for (int i = 0; i < 30000000; i++)
value += Math.Log(Math.Sqrt(Math.Pow(value, 0.75)));
return value;
}
在等待Task.Delay的伟大工程,但AWAIT JobAsync块的用户界面。为什么呢?
谢谢你。
The await Task.Delay works great, but the await JobAsync blocks the UI. Why ? Thank you.
推荐答案
试试这个:
private Task<double> JobAsync(double value)
{
return Task.Factory.StartNew(() =>
{
for (int i = 0; i < 30000000; i++)
value += Math.Log(Math.Sqrt(Math.Pow(value, 0.75)));
return value;
});
}
这篇关于我的任务异步总是块UI的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文