標籤:
需求:
一個web頁面 default.aspx 裡面有兩個控制項GridView1,GridView2,通過兩個線程分別載入綁定資料。
綁定GridView1:
void BindCategory()
{
SqlConnection conn = ReturnSqlconn();
SqlCommand comm = new SqlCommand("select * from category", conn);
conn.Open();
SqlDataReader sdr = comm.ExecuteReader();
GridView1.DataSource = sdr;
GridView1.DataBind();
}
綁定GridView2:
void BindNews()
{
SqlConnection conn = ReturnSqlconn();
SqlCommand comm = new SqlCommand("select * from News", conn);
conn.Open();
SqlDataReader sdr = comm.ExecuteReader();
GridView2.DataSource = sdr;
GridView2.DataBind();
}
載入兩個方法,綁定資料:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
try
{
Thread categoryThread = new Thread(new ThreadStart(BindCategory));
Thread newsThread = new Thread(new ThreadStart(BindNews));
categoryThread.Start();
newsThread.Start();
categoryThread.Join();
newsThread.Join();
}
catch (Exception ex)
{
Response.Write(ex);
}
}
}
實現效果
注意:
categoryThread.Join();
newsThread.Join();
這兩個函數很關鍵,否則導致頁面綁定失敗;Join方法使建立的2個線程與頁面載入同步;Join在MSND上的解釋是:在繼續執行標準的 COM 和 SendMessage 訊息泵處理期間,阻塞調用線程,直到某個線程終止為止。
通過此方法可以實現單個頁面的多執行緒以提高效率。
北京網站建設
asp.net多線程在web頁面中簡單使用