如下代码。只需要异步的处理一个数据,不需要等处理完成后,进行后继的操作。可以不用Async来修饰方法
static void Main(string[] args) { Test(); Console.WriteLine("Main End"); Console.Read(); } static void Test() { var task1 = Task.Run(() => { Task.Delay(10000); Console.WriteLine("task1"); }); var task2 = Task.Run(() => { Task.Delay(20000); Console.WriteLine("task2"); }); }
但是如果期望在方法完成后,要执行一些操作,可以用await关键词,如果要用await关键词,就必须使用async来修饰方法。
static void Main(string[] args) { Test(); Console.WriteLine("Main End"); Console.Read(); } static async void Test() { var task1 = Task.Run(() => { Thread.Sleep(100); Console.WriteLine("task1"); }); var task2 = Task.Run(() => { Thread.Sleep(500); Console.WriteLine("task2"); }); await Task.WhenAny(new Task[] { task1, task2 }); Console.WriteLine("有一个任务完成"); await Task.WhenAll(new Task[] { task1, task2 }); Console.WriteLine("全部完成!"); }
异步相关内容:
内容链接:http://www.cnblogs.com/liqingwen/p/5866241.html
原文:https://www.cnblogs.com/blueGao/p/10287910.html