Nic*_*ico 12 c# multithreading asynchronous dispatcher async-await
在WPF 4.5应用程序中,我不明白为什么在使用await + a task时UI被阻止:
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;
}
Run Code Online (Sandbox Code Playgroud)
等待Task.Delay工作得很好,但等待JobAsync阻止了UI.为什么?谢谢.
L.B*_*L.B 10
试试这个:
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;
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8185 次 |
| 最近记录: |