C#中非同步匿名委託和Lambda表示式
阿新 • • 發佈:2019-01-02
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表示式也是很容易編寫的。