Thread.Sleep(2000);
你写这个是干啥用的?

解决方案 »

  1.   

    1 看你的异步是否成功
    2 是不是速度太快了,下来的时候直接就是result.IsCompleted==true 了
      

  2.   

    我调试时 它确实进入了while中
      

  3.   

    dr.GetValue(0).ToString();数据库的数据就是????
      

  4.   

    毕业设计不会做、害怕答辩通不过……不要紧,有我们会帮你解决这一切!我们提供专业的计算机毕业设计和课程设计。我们可以根据您的要求,特别为您量身定做毕业设计(绝对是原创!)。并且会在程序代码里写出很详细的注释,同时也能帮您学习编程。
    有需要者登录http://xdqbysj.10mb.cn/
    QQ:
    客服一(16376208)  客服二(57293694)
      

  5.   

    在WHILE异步功能是不能实现的,(表现上,实际上执行了,但是还没有返回页面时就结束了,进行下一次的事了~~)
    你可这样试,在把WHILE写成读取一次READER,你看看如何,同时你不要在调试下运行,要在
    正常访问下或CTRL+F5
      

  6.   

    整个过程是在服务器内存里写 this.TextBox1.Text 的,真个页面处理完才产生 html 给浏览器端。你好好学习一些页面生命周期。webform与winform的处理机制完全不同。参考:
    http://www.microsoft.com/china/MSDN/library/archives/library/DNAspp/html/aspnet-pageobjectmodel.asp等等。
      

  7.   

    以及:http://community.csdn.net/Expert/topic/5371/5371340.xml?temp=.313595
      

  8.   

    this.TextBox1.Text += "!!!"; 
    后面是
    this.TextBox1.Text = dr.GetValue(0).ToString();
    那当然是这样啦!
      

  9.   

    如果在winform中,也就是ui主线程与你的线程在一个进程中时,那么sleep似乎可以让 this.TextBox1.Text 看到点效果(似乎更应该写为Form.Application.Doevents而不是sleep),但是webForm则是两回事 ......
      

  10.   

    不管是WinForm还是WebForm,这么做都是错的.  不过我奇怪的是楼主连基本的页面周期顺序都不了解也可以混到5个三角???这样做在Web上无非是使页面变慢了而已, 楼主把服务器端的异步跟AJAX这种客户端跟服务器端交互之间的异步混淆了.
    而在WinForm上,用Sleep来延时更加可笑,让用户的鼠标变成沙漏然后标题栏显示"程序没有响应"?? 在窗体主线程上面Sleep的效果就是让程序在短时间内假死,没有响应...就像出错了一样....
      

  11.   

    程序应该是显示了,this.TextBox1.Text = dr.GetValue(0).ToString();
    的执行结果.
      

  12.   

    Thread.Sleep(2000);这个是多线程的,也就是两秒运行一次.
      

  13.   

    楼主的想法明显是带有WinForm的风格的,
    在WebForm中,在
    SqlDataReader dr = cmd.EndExecuteReader(result);
    while (dr.Read())
    {
    this.TextBox1.Text = dr.GetValue(0).ToString();
    }
    这一段执行完的时候,才会正式Response 
      

  14.   

    SqlConnection con = new SqlConnection("server=.;database=pubs;uid=sa;pwd =sa;Asynchronous Processing=true"); 
            con.Open();
            SqlCommand cmd = new SqlCommand("select * from titles", con);
            IAsyncResult result = cmd.BeginExecuteReader();
            while (!result.IsCompleted)
            {
                this.TextBox1.Text += "!!!";
                Thread.Sleep(2000);
            }
            
        SqlDataReader dr = cmd.EndExecuteReader(result);
        while (dr.Read())
        {
            this.TextBox1.Text = dr.GetValue(0).ToString();
        }
     你上面的代码是一人方法里的吗?
    如果是的话一定会有问题,你是先执行this.TextBox1.Text += "!!!";后又执行this.TextBox1.Text = dr.GetValue(0).ToString();
    结果当然不会显示出!!!
      

  15.   

    cmd.BeginExecuteReader();
    是什么啊!自己定义的方法啊