private void Button_Click(object sender, RoutedEventArgs e)
{
Trace.WriteLine("Task Start !");
DOTaskWithAsync();
Trace.WriteLine("Task End !");
Trace.WriteLine("----------------");
}
public static async void DOTaskWithAsync()
{
Trace.WriteLine("Await Taskfunction Start");
await Task.Run(() => {
Dotaskfunction();
});
}
public static void Dotaskfunction()
{
for (int i = 0; i <= 50; i++)
{
Trace.WriteLine(string.Format("task {0} has been done!", i));
}
}
结果是异步的,结果如下:
Task Start !
Await Taskfunction Start
task 0 has been done!
task 1 has been done!
Task End !
----------------
task 2 has been done!
task 3 has been done!
task 4 has been done!
task 5 has been done!
task 6 has been done!
task 7 has been done!
task 8 has been done!
task 9 has been done!
......
private async void Button_Click(object sender, RoutedEventArgs e)
{
Trace.WriteLine("Task Start !");
await DOTaskWithAsync();
Trace.WriteLine("Task End !");
Trace.WriteLine("----------------");
}
public static async Task DOTaskWithAsync()
{
Trace.WriteLine("Await Taskfunction Start");
await Task.Run(() => {
Dotaskfunction();
});
}
public static void Dotaskfunction()
{
for (int i = 0; i <= 50; i++)
{
Trace.WriteLine(string.Format("task {0} has been done!", i));
}
}
结果是同步的,结果如下:
Task Start !
Await Taskfunction Start
task 0 has been done!
task 1 has been done!
task 2 has been done!
task 3 has been done!
task 4 has been done!
......
task 45 has been done!
task 46 has been done!
task 47 has been done!
task 48 has been done!
task 49 has been done!
task 50 has been done!
Task End !
----------------