异步处理不同于同步,其步骤包括任务分发、并发执行与结果回调。
1、 服务器接收ASP.NET请求后,立即释放当前线程回池。
2、 ASP.NET 调用已注册的 BeginEventHandler 方法后立即返回,不等待执行完成。
3、 线程归还至线程池,同时BeginEventHandler方法返回一个IAsyncResult对象。
4、 当BeginEventHandler方法执行超时时,ASP.NET将自动触发调用TimeoutHandler方法进行处理。
5、 若在规定时限内返回,ASP.NET 将从线程池中获取线程并执行 EndGetAsyncData 方法。
6、 EndGetAsyncData方法执行完毕后,ASP.NET将继续处理页面生命周期的后续阶段。
7、 通过异步处理,避免了线程同步时被挂起的问题,使原本阻塞的线程可处理其他请求。
评论
更多评论