<mark id="j7xzf"></mark>

        <output id="j7xzf"><ins id="j7xzf"><nobr id="j7xzf"></nobr></ins></output>

          <i id="j7xzf"><output id="j7xzf"><th id="j7xzf"></th></output></i>

          <b id="j7xzf"><cite id="j7xzf"><big id="j7xzf"></big></cite></b><cite id="j7xzf"><p id="j7xzf"><th id="j7xzf"></th></p></cite>

                        當前位置:首頁 > 教程 > 編程教程 > .net教程 > 正文

                        將當前請求的上下文作為參數傳遞給多線程的方
                        欄目分類:.net教程   發布日期:2014-09-12   來源:互聯網   瀏覽次數:

                        由于請求執行完畢后,多線程的程序可能還在運行,因此,在多線程的代碼中,是無法直接使用 HttpContext 對象的,但是,我們可以把它作為參數及傳遞到多線程的代碼中。實現這種功能,可以采用下面的兩種方法:一

                        由于請求執行完畢后,多線程的程序可能還在運行,因此,在多線程的代碼中,是無法直接使用 HttpContext 對象的,但是,我們可以把它作為參數及傳遞到多線程的代碼中。實現這種功能,可以采用下面的兩種方法:

                        一,將 HttpContext 對象作為類的成員傳遞,下面是這種方法的完整實例代碼,直接拷貝即可執行:

                        ASPX 代碼

                        1. <%@ Page Language="C#" %> 
                        2. "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
                        3. <script runat=
                        4.   public class ThreadWork 
                        5.   { 
                        6.     public System.Web.HttpContext ctx { setget; } 
                        7.     public ThreadWork() { } 
                        8.     public void DoTest() 
                        9.     { 
                        10.       if (System.IO.File.Exists(HttpRuntime.AppDomainAppPath + "Log.txt")) 
                        11.       { 
                        12.         System.IO.File.Delete(HttpRuntime.AppDomainAppPath + "Log.txt"); 
                        13.       } 
                        14.        for (int i = 0; i < 10; i++) 
                        15.       { 
                        16.         //將內容寫入到文件里以記錄測試的結果。 
                        17.         using (System.IO.StreamWriter sw = new System.IO.StreamWriter(HttpRuntime.AppDomainAppPath + "Log.txt"true)) 
                        18.         { 
                        19.           sw.WriteLine("當前時間:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " 得到的參數:" + ctx.Request.QueryString["id"]); 
                        20.           sw.Flush(); 
                        21.           sw.Close(); 
                        22.           sw.Dispose(); 
                        23.         } 
                        24.         System.Threading.Thread.Sleep(5000); 
                        25.       } 
                        26.     } 
                        27.   } 
                        28.  
                        29.   protected void Page_Load(object sender, EventArgs e) 
                        30.   { 
                        31.     ThreadWork tw = new ThreadWork(); 
                        32.     tw.ctx = System.Web.HttpContext.Current; 
                        33.     System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ThreadStart(tw.DoTest)); 
                        34.     thread.Start(); 
                        35.   } 
                        36. </script> 
                        37. "http://www.w3.org/1999/xhtml"
                        38. "server"
                        39.   www.qqview.com 
                        40.  
                        41.  
                        42.   "form1" runat="server"
                        43. av男人的天堂在线观看国产_好吊妞无缓冲视频观看_邻居老头把我弄舒服死了_我把她日出水了刺激视频
                          <mark id="j7xzf"></mark>

                                <output id="j7xzf"><ins id="j7xzf"><nobr id="j7xzf"></nobr></ins></output>

                                  <i id="j7xzf"><output id="j7xzf"><th id="j7xzf"></th></output></i>

                                  <b id="j7xzf"><cite id="j7xzf"><big id="j7xzf"></big></cite></b><cite id="j7xzf"><p id="j7xzf"><th id="j7xzf"></th></p></cite>

                                                 
                                              1.  

                                              我們可以以這種方法進行訪問,http://localhost:11249/WebSite1/ThreadTest.aspx?id=mengxianhui

                                              得到的結果如下:
                                              Txt 代碼
                                              當前時間:2011-02-11 20:11:07 得到的參數:mengxianhui
                                              當前時間:2011-02-11 20:11:12 得到的參數:mengxianhui
                                              當前時間:2011-02-11 20:11:17 得到的參數:mengxianhui
                                              當前時間:2011-02-11 20:11:22 得到的參數:mengxianhui
                                              當前時間:2011-02-11 20:11:27 得到的參數:mengxianhui
                                              當前時間:2011-02-11 20:11:32 得到的參數:mengxianhui
                                              當前時間:2011-02-11 20:11:37 得到的參數:mengxianhui
                                              當前時間:2011-02-11 20:11:42 得到的參數:mengxianhui
                                              當前時間:2011-02-11 20:11:47 得到的參數:mengxianhui
                                              當前時間:2011-02-11 20:11:52 得到的參數:mengxianhui

                                              二,采用 ParameterizedThreadStart 類實現,完整源代碼如下:

                                              ASpX 代碼

                                              1. <%@ Page Language="C#" %> 
                                              2. "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
                                              3. <script runat=
                                              4.   protected void Page_Load(object sender, EventArgs e) 
                                              5.   { 
                                              6.     System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(DoTest)); 
                                              7.     thread.IsBackground = true
                                              8.     thread.Start(System.Web.HttpContext.Current); 
                                              9.     Response.Write("頁面請求完畢。"); 
                                              10.   } 
                                              11.  
                                              12.   private static void DoTest(Object context) 
                                              13.   { 
                                              14.     System.Web.HttpContext ctx = context as System.Web.HttpContext; 
                                              15.     if (System.IO.File.Exists(HttpRuntime.AppDomainAppPath + "Log.txt")) 
                                              16.     { 
                                              17.       System.IO.File.Delete(HttpRuntime.AppDomainAppPath + "Log.txt"); 
                                              18.     } 
                                              19.     
                                              20.     for (int i = 0; i < 10; i++) 
                                              21.     { 
                                              22.       //將內容寫入到文件里以記錄測試的結果。 
                                              23.       using (System.IO.StreamWriter sw = new System.IO.StreamWriter(HttpRuntime.AppDomainAppPath + "Log.txt"true)) 
                                              24.       { 
                                              25.         sw.WriteLine("當前時間:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " 得到的參數:" + ctx.Request.QueryString["id"]); 
                                              26.         sw.Flush(); 
                                              27.         sw.Close(); 
                                              28.         sw.Dispose(); 
                                              29.       } 
                                              30.       System.Threading.Thread.Sleep(5000); 
                                              31.     } 
                                              32.   } 
                                              33. </script> 
                                              34.  
                                              35. "http://www.w3.org/1999/xhtml"
                                              36. "server"
                                              37.  
                                              38.  
                                              39.  
                                              40.   "form1" runat="server"
                                              41.  
                                              42.  

                                              得到的結果與上面相同。

                                              相關熱詞:aspnet教程

                                              Copyright © 2014 聚合分享 版權所有   京ICP備14037269號-1  關于聚合分享 | 廣告合作 | 版權聲明 | 意見反饋 | 聯系方式 | 原創投稿 | 網站地圖 | 友情鏈接
                                              平面設計網頁設計編程教程數據庫cms教程電腦教程辦公軟件服務器seo優化