我的页面上有2个gridview 分别从2个表中读取数据,其中一个表的数据量比较大,一个表比较小不用线程的时候,那么页面在加载的时候是2个Gridview 全部获取数据才在页面上同时显示,并且是按顺序执行
我的想法是用线程控制一下,让他们加载不是顺序的,而是同步的,也就是那个获取的数据较快,就先显示那个部分
代码如下,现在问题就是 用线程的代码 执行时候 页面根本不显示数据,不知道为什么,以前没有用过线程,还想各位帮帮解决一下
protected void Page_Load(object sender, EventArgs e)
    {
        bindData1();
        bindData2();
这是不用线程
         Thread th1 = new Thread(new ThreadStart(bindData1));
        th1.Start();
        Thread th2 = new Thread(new ThreadStart(bindData2));
        th2.Start();
 这是用线程    }
    public void bindData1()
    {
        this.SqlDataSource1.SelectCommand = "SELECT KEY_MESSAGE_ID, KEY_CLASS, AUTHOR, SM_CONTENT, KEYWORD, MANUAL_KEYWORD, ADD_TIME, PASS_TIME, KEY_STATUS, REMARKS, LAST_COUNT, CURR_WEEK_COUNT, CURR_MONTH_COUNT, TOTAL_COUNT, CITY, AUDIT_TAG, MSG_SRC, MSG_LEVEL, USER_VISIBLE, EMP_ID, USER_AMOUNT, REAL_USER_AMOUNT, HIT_RATE, SEARCH_KEYWORD, REPLACE_CONTENT FROM KEY_MESSAGE_NEW WHERE (ROWNUM <= 1000)";
        this.GridView1.DataBind();
 
    }
    public void bindData2()
    {
        this.SqlDataSource2.SelectCommand = "SELECT * FROM WISHES";
        this.GridView2.DataBind();
    }

解决方案 »

  1.   

    在web应用的这种场景下不适合使用线程,page_load里起了线程后就直接往下运行了,不管线程是否结束就解析结果到客户端了
      

  2.   

    似乎对于web的线程好象不好使用,我以前也写过,但是毫无作用
      

  3.   

    那你们的意思是webform下不能用线程,winform下可以用是么
      

  4.   

    问题不是那么绝对,线程在web下绝对有用武之地,之前见过一个demo就是web用线程实现上传时的滚动条实时滚动