日期:2014-05-17  浏览次数:20421 次

为什么不能这样写呢?
 protected void Button1_Click(object sender, EventArgs e)
        {
            new Thread(new ThreadStart(() =>
            {
                aa();
            }
            )).Start();

Response.Write("bb");
        }

        public void aa()
        {
            for (int i = 0; i < 10; i++)
            {
                Thread.Sleep(1000);
                Response.Write("aa");
                
            }
        }



为什么执行不到aa()方法呢

直接提示

------解决方案--------------------
唯一能想到的就是你的asp.net项目 没有target .net framework 3.0
------解决方案--------------------
现在的.net怎么越来越像js了,晕。

看到多线程头大了。帮顶
------解决方案--------------------
        Thread t1 = new Thread(aa);
        t1.Start();
        Response.Write("bb");
        t1.Join();


    public void aa()
    {
        for (int i = 0; i < 10; i++)
        {
            Response.Write("aa");
        }
    }

这样
------解决方案--------------------
我觉得是 当 Button1_Click这个结束以后不能再 aa()里再调用Response.Write前台写数据了

Response.Write("bb");前加Thread.Sleep(1000);

能运行一些aa()


------解决方案--------------------
缺少等待aa进程,b/s和c/s还是有所区别的
t1.Join();


引用:
引用:
Thread t1 = new Thread(aa);
        t1.Start();
        Response.Write("bb");
        t1.Join();


    public void aa()
    {
        for (int i = 0; i < 10; i++)
    ……

------解决方案--------------------
aa()方法是子线程