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();
}
}
輸出:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CX90TUNdXQq1Uaa1WWpB3MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2LcRHelR3LcJzLctmch1mclRXY39DO5ITOwMzM0EzNxUDM4EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
原來異步匿名委托或者異步Lambda表達式也是很容易編寫的。