|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
2003年中微软发布最新版本的ASP.netWebMatrix,对于我们喜欢用Asp.net来编程的朋友实在是个好消息,我也实实在在的将Asp.net更深入的研究了一下,以方便我以后更好的运用它,同时我也讲讲使用它的感受。本来一向觉得Asp.Net中的异步就是Ajax中的异步。可让Web界面加载完一部分就显现一部分,经由多方校阅材料后发明Asp.Net的异步基本就不是这么一回事。
要懂得Asp.Net2.0中的异步处置历程,就得先分明Page页面的性命周期,具体请拜见本站Asp.Net中Page页的性命周期
1、Asp.net同步处置历程:
1,服务器在吸收到页面哀求后,从线程池平分出一个分派给该线程。
2,该页在实行终了前,该线程一向处于保存形态,以避免该线程分派给别的的哀求。
3,假如该页运算工夫很长,此时该线程一向处于挂起形态。
4,该页完成一个性命周期,该线程得已开释。
此时大概会碰到的成绩就是:线程池中的可用线程是无限的,假如哀求过量,Asp.Net会因503“serverunavailable”毛病使后续哀求失利。
同步哀求中性命周期与线程干系图:
</img>
2、Asp.Net异步处置历程:
1,服务器入手下手吸收asp.net的哀求以后,以后线程当即前往线程池。
2,asp.net挪用注册的BeginEventHandler办法,并当即前往。
3,线程前往到线程池。同时BeginEventHandler办法前往一个IAsyncResult。
4,假如BeginEventHandler办法超时,asp.net会挪用TimeoutHandler办法。
5,假如在划定工夫内前往,asp.net从线程池提取线程并挪用EndGetAsyncData办法。
6,当EndGetAsyncData办法前往以后,asp.net入手下手实行该页性命周期其他的部分。
如许就填补了同步中以后线程一同被挂起的成绩,本来被挂起的线就能够服务于别的的哀求。
异步哀求中性命周期与线程干系图:
注重:如查想让你的Page页撑持异步,必定要设置Page的Async属性为true.
总结:利用好Asp.Net中的异步处置,可使你的程序功能失掉优化。因为各系统的API不同,代码调用API编写程序就会遇到很多不兼容的地方,比如Java改写后的Serv-U就不能在手机上执行,手机的游戏也不能直接在微机上执行。 |
|