当程序模块需要较长时间处理或等待返回结果的时候,异步执行相较于同步等待有着明显的优势,当后台程序异步执行时,系统可以将资源分配给其他进程使用,这点在改善用户体验时效果极佳,给用户以系统顺畅的感觉,后台程序运行完毕时可以回调函数,进行接下来的操作。异步对可能起阻止作用的活动(例如,应用程序访问 Web 时)至关重要。 对Web 资源的访问有时很慢或会延迟。 如果此类活动在同步过程中受阻,则整个应用程序必须等待。
C#APM为开发者提供了四种异步方法,其中较有效的方法是使用 AsyncCallback委托来指定操作完成时要调用的方法,在操作完成后调用的方法中调用EndXxx操作来获得异步操作的结果。这个方法需要定义一个委托函数,用来执行异步操作完成后的业务逻辑。