扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:中国IT实验室 来源:中国IT实验室 2007年10月1日
关键字:
在本页阅读全文(共2页)
- -上面的只是小事伸手~~来个速度更快的
//最强大的wait调用,只是把System.Threading.WaitHandle.WaitAll换成,System.Threading.WaitHandle.WaitAny因为System.Threading.WaitHandle.WaitAny //可以在某一格进程结束后得到处理,修改try部分--注意看 protected void Button4_Click(object sender, EventArgs e) { DateTime old = DateTime.Now; //实际上就是在第一个结果集是检索的源,第二个结果集实际上只要查询第一个结果集里面有的字段,不会在数据库中查寻,而是用第一个结果集 SqlConnection DBCon = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionStringInfo"].ConnectionString); SqlCommand Table_1Command = new SqlCommand("select * from Table_2 where Id>4000001", DBCon);//---这里执行查询后 SqlCommand MMCommand = new SqlCommand("select Title ,Content from MM,Table_2 where MM.ID=Table_2.Id", DBCon);//Table_2.Id其实是上面的Table_2地一列 Table_1Command.CommandType = CommandType.Text; MMCommand.CommandType = CommandType.Text; SqlDataReader Table_1DataReader; SqlDataReader MMDataReader; IAsyncResult Table_1AsyncResult; IAsyncResult MMAsyncResult; System.Threading.WaitHandle[] WHandles = new System.Threading.WaitHandle[2]; //封装等待对共享资源的独占访问的操作系统特定的对象。 System.Threading.WaitHandle Table_1Whandle; System.Threading.WaitHandle MMWhandle; try { DBCon.Open(); Table_1AsyncResult = Table_1Command.BeginExecuteReader(); MMAsyncResult = MMCommand.BeginExecuteReader(); Table_1Whandle = Table_1AsyncResult.AsyncWaitHandle; MMWhandle = MMAsyncResult.AsyncWaitHandle; WHandles[0] = Table_1Whandle; WHandles[1] = MMWhandle; System.Threading.WaitHandle.WaitAny(WHandles); for (int index = 0; index < 2; index++) { //--------返回完成执行等待句柄索引该数据在WHandles索引里面的某个 int whindex = System.Threading.WaitHandle.WaitAny(WHandles); switch (whindex) { //注意这里必须和上面装入WHandles集合的索引一样 case 0: Table_1DataReader = Table_1Command.EndExecuteReader(Table_1AsyncResult); GridView1.DataSource = Table_1DataReader; GridView1.DataBind(); break; case 1: MMDataReader = MMCommand.EndExecuteReader(MMAsyncResult); GridView2.DataSource = MMDataReader; GridView2.DataBind(); break; } } } catch (System.Exception) { } finally { DBCon.Close(); } TimeSpan not = DateTime.Now - old; Label1.Text = not.Seconds.ToString(); } |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。