C#中异步匿名委托和Lambda表达式
C#中async/await真的是大大简化了异步程序的编写,但往往我们可能忽略了异步匿名委托和Lambda表达式。
直接上代码:
class Program { static void Main(string[] args) { Func<Task> asyncFunc1 = async delegate { Console.WriteLine("Begin in Anonymous Delegate..."); await Task.Delay(TimeSpan.FromSeconds(2)); Console.WriteLine("End in Anonymous Delegate..."); }; Func<Task> asyncFunc2 = async () => { Console.WriteLine("Begin in Lambda..."); await Task.Delay(TimeSpan.FromSeconds(2)); Console.WriteLine("End in Lambda..."); }; asyncFunc1(); asyncFunc2(); Console.WriteLine("Main thread"); Console.ReadKey(); } }
输出:
原来异步匿名委托或者异步Lambda表达式也是很容易编写的。