static void Main(string[] args) { TestMain(); } static void TestMain() { Console.WriteLine("Start "); GetValueAsync(); Console.WriteLine("End "); Console.Read(); } static async Task GetValueAsync() { await Task.Run(()=> { Thread.Sleep(1000); for (int i = 0; i < 5; i++) { Console.WriteLine(string.Format("Form Task:{0}",i)); } }); Console.WriteLine("Task End"); }
如果不用async 按照顺序执行,打印出来
主方法需要等子方法里面执行完成才能继续执行。
在async方法里面,用task.run重新开启一个异步线程,然后主线程返回继续执行,子线程接下来执行。 哪个先执行出来就先打印出来。 有需要的话async可以发挥一个task,进行操作。