ASP.NET 2.0 中的異步頁
2006/12/20 21:48:32
本頁內容    ASP.NET 1.x 中的異步頁  ASP.NET 2.0 中的異步頁  異步數據綁定  異步調用 Web 服務  異步任務   
包裝它
 
 
 
 
ASP.NET 2.0 提供了大量新功能,其中包括聲明性數據綁定和母版頁,成員和角色管理服務等。但我認為最棒的功能是異步頁,接下來讓我告訴您其中的原因。
當 ASP.NET 接收針對頁的請求時,它從線程池中提取一個線程并將請求分配給該線程。一個普通的(或同步的)頁在該請求期間保留線程,從而防止該線程用于處理其他請求。如果一個同步請求成為 I/O 綁定(例如,如果它調用一個遠程 Web 服務或查詢一個遠程數據庫,并等待調用返回),那么分配給該請求的線程在調用返回之前處于掛起狀態。這影響了可伸縮性,原因是線程池的可用線程是有限的。如果所有請求處理線程全部阻塞以等待 I/O 操作完成,則其他請求排入隊列等待線程釋放。最好的情況是吞吐量減少,因為請求等待較長的時間才能得到處理。最壞的情況則是該隊列填滿,并且 ASP.NET 因 503“Server Unavailable”錯誤使后續請求失敗。
異步頁為由 I/O 綁定的請求引起的問題提供優秀的解決方案。頁處理從線程池線程開始,但是當一個異步 I/O 操作開始響應 ASP.NET 的信號之后,該線程返回線程池。當該操作完成時,ASP.NET 從線程池提取另一個線程,并完成該請求的處理。由于線程池線程得到了更高效的使用,因此提高了可伸縮性。那些掛起等待 I/O 完成的線程現在可用于服務其他請求。直接的受益方是不執行長時間 I/O 操作并因此可以快速進出管線的請求。長時間等待進入管線會對此類請求的性能帶來不小的負面影響。
ASP.NET 2.0 Beta 2 異步頁基礎結構的相關文檔很少。讓我們展望一下異步頁的前景,從而彌補這點不足。請記住,本專欄涉及 ASP.NET 2.0 和 .NET Framework 2.0 的測試版本。 ASP.NET 1.x 中的異步頁
ASP.NET 1.x 本質上不支持異步頁,但是通過堅韌的努力和不懈地創新可以生成異步頁。有關更多概述信息,請參閱 MSDN®Magazine 2003 年 6 月刊的文章“Use Threads and Build Asynchronous Handlers in Your Server-Side Web Code”,該文章的作者是 Fritz Onion。
這里的技巧是,在一個頁的代碼隱藏類中實現 IhttpAsyncHandler,從而提示 ASP.NET 通過調用 IHttpAsyncHandler.BeginProcessRequest 來處理請求,而不是通過調用該頁的 IHttpHandler.ProcessRequest 方法。然后,您的 BeginProcessRequest 實現可以啟動另一個線程。該線程調用 base.ProcessRequest,使得頁進入其常規請求處理生命周期(完成諸如 Load 和 Render 的事件),但是在非 ThreadPool 線程上例外。同時,啟動新線程之后 BeginProcessRequest 立即返回,從而允許執行 BeginProcessRequest 的線程返回線程池。
這是基本思想,但細節中還有很多注意事項。其中,您需要實現 IAsyncResult,并從 BeginProcessRequest 中返回它。這通常意味著創建一個 ManualResetEvent 對象,并且當 ProcessRequest 在后臺線程中返回時向其發送信號。此外,您必須提供調用 base.ProcessRequest 的線程。遺憾的是,多數用于將工作移到后臺線程的常規技術(包括 Thread.Start、ThreadPool.QueueUserWorkItem 和異步委托)在 ASP.NET 應用程序中都是起反作用的,因為它們或者從線程池“偷盜”線程,或者有不受限制的線程增長的危險。正確的異步頁實現使用自定義線程池,但自定義線程池類不容易編寫(有關更多信息,請參閱 MSDN Magazine 2005 年 2 月刊的 .NET Matters 專欄)。
主要是在 ASP.NET 1.x 中生成異步頁并非不可能,而是有些乏味。在嘗試一、兩次之后,您不禁會想一定會有更好的方法。目前,這個好方法就是 ASP.NET 2.0。 返回頁首 ASP.NET 2.0 中的異步頁

下一頁
返回列表
返回首頁 主站蜘蛛池模板: 欧美乱人伦视频| 美女视频黄频a免费观看| 国语第一次处破女| 丝袜高跟浓精受孕h文| 日韩电影中文字幕在线网站| 亚洲桃色av无码| 猫扑两性色午夜视频免费| 合租屋第三部小雯怀孕第28章 | 日韩大乳视频中文字幕| 亚洲快播电影网| 91chinese在线| 婷婷无套内射影院| 久久91精品国产91久久麻豆| 日韩精品无码人成视频手机| 亚洲国产精品综合久久20| 爆乳熟妇一区二区三区霸乳| 全彩acg无翼乌| 老师的胸好大好软| 国产免费的野战视频| 久久久噜久噜久久gif动图| 性色AV无码一区二区三区人妻| 久久天堂AV综合色无码专区| 欧美一卡2卡3卡4卡免费| 亚洲成A人片在线观看无码| 激情图片小说区| 免费在线观看污网站| 精品国产一区二区三区av片| 国产一二在线观看视频网站| 韩国亚洲伊人久久综合影院| 国产日韩欧美久久久| 美女张开腿让男人桶的动态图| 国产老师的丝袜在线看| 97精品视频在线观看| 天堂mv在线免费看| jux662正在播放三浦惠理子 | 亚洲资源在线视频| 男女爽爽无遮挡午夜动态图| 刘伯温致力打造火热全网| 美女把屁屁扒开让男人玩| 国产jizzjizz免费看jizz| 风流女护土一级毛片|