首先是委托。当您声明一个委托时,编译器会自动为该委托类型生成三个方法:- Invoke(...),参数与委托声明相同 - BeginInvoke(...,AsyncCallback,object),其中...是已声明的参数 - EndInvoke(IAsyncResult)Invoke() 方法同步调用委托目标,就像普通调用一样。BeginInvoke() 方法是异步调用,目标方法在线程池线程上运行。在方法完成后,需要调用 EndInvoke() 以释放为调用分配的资源并重新引发可能中止调用的任何异常。.NET 框架包含许多具有 BeginXxxx() 方法的类。MSDN Library 将它们称为“异步操作”,而不是异步方法。它们启动一个异步完成的操作。从 .NET 4.5 开始,并受 C# 版本 5 支持,以 Async 结尾且返回一个 Task 的异步操作可以在 await 表达式中调用。当在具有 async 修饰符的方法中使用时,这极大地简化了处理异步操作,在 WinRT 中非常重要,因为许多常见操作都是异步的。