为啥不能这样写呢
为什么不能这样写呢? protected void Button1_Click(object sender, EventArgs e){new Thread(new ThreadS
为什么不能这样写呢?
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();
[解决办法]aa()方法是子线程
没有 阻塞 主线程 Button1_Click 方法
所以没有同步输出
[解决办法]
不是不能用,是我刷新几次见没有什么变化,所以故意去掉的,这样就可以看到bb有时在前边,有时在后边,效果就很显示了
[解决办法]网页里面根本没必要使用线程,直接 aa();
[解决办法]
public void aa()
{
for (int i = 0; i < 10; i++)
{
Response.Write("aa");
Thread.Sleep(1);
}
}
先输出,再等待
[解决办法] Thread t1 = new Thread(aa);
t1.Start();
Response.Write("bb");
Thread.Sleep(1);
Response.Write("cc");
t1.Join();
public void aa()
{
for (int i = 0; i < 10; i++)
{
Response.Write("aa");
Thread.Sleep(1);
}
}
这样就明显了