看似功能相同的东西,实际内部原理不同,task是一个真正的线程,首先都是来自同一个命名空间,task还更下一级.
task更强调线程,在该线程内执行程序。而async/await更侧重返回的结果集,一般用来取值用,比如:
public Task test()
{
return Task.Run(() => {
Thread.Sleep(2000);
k++;
btnTradeSetting3.Content = k;
});
}
private async Task<string> testString()
{
return await Task<string>.Run(() =>
{
Thread.Sleep(5000);
return "test";
});
}
private async void btn_ClickAsync(object sender, RoutedEventArgs e)
{
btn.Content = await testString();
}