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表達式也是很容易編寫的。