日期:2014-05-16  浏览次数:20520 次

请教一个关于web中thread的问题。
我在web页面中,定义thread,然后输出结果到页面,发现输出不来啊。


 如果说,所有后台代码执行完了,iis才提交结果给浏览器, 那么我结束进程后,原本应该输出的,却还是没有输出,这是为什么?

web中的线程 到底是什么概念呢?   这方便资料有点少。

大家讨论讨论吧。。。  谢谢。
------解决方案--------------------
没见过web中用线程的...

在说了 线程是运行在服务器的吧.你本地用浏览器看  总感觉 好像哪里不对劲..

而且这个跟页面的周期什么的 好像都有关系..
------解决方案--------------------
web页面中用线程没接触过,不建议这么干啊,不是应该用脚本的么。
------解决方案--------------------
Web应该可以使用线程的,但是不知道你建的线程是同步的还是异步的,
贴出你的代码让大家看看。
------解决方案--------------------
引用:
 如果说,所有后台代码执行完了,iis才提交结果给浏览器, 那么我结束进程后,原本应该输出的,却还是没有输出,这是为什么?

web中的线程 到底是什么概念呢?   这方便资料有点少。

Page对象进行页面处理,进行一次进行完整的页面声明周期处理,在这个方法的最后输出Page内容(html代码)给客户端。

你可以看一下asp.net框架 System.Web.UI.Page 对象类的 ProcessRequestMain 方法,整个页面生命周期都在这个方法中。
------解决方案--------------------
至于你问“web钟的线程到底是什么概念呢?”,这还真的难以回答。它们根本没有什么直接关系。

好比如说,人家卖菜的是早上上了菜、晚上卖完菜就回家了。你现在在家里准备数毛票,生怕不够零钱卖菜的。结果数的时间太长了,等跑到菜市场去,人家早已经回家了,你只看到了空空的摊位。

你的线程最后、对于页面Render才做来说,根本就是迟到的。
------解决方案--------------------
web中用线程不断更新数据的时候要是需要刷新页面结果才会在界面显示的 就比如说你用一个线程更新datatable 另一个线程吧这个datatable绑定给gridview winform直接委托绑定就能实现不断刷新的效果  web中必须要刷新gridview才能看到
------解决方案--------------------
Web 编程  HTTP 协议,你新建的 Thread 是响应不到浏览器的
------解决方案--------------------
http的请求是被你写的那个page的页面处理的,
page页面的处理依赖于ProcessRequestMain 。。所以,你的http请求是被ProcessRequestMain 处理的。

你新开的线程只会作为服务器端代码运行,根本不会影响到ProcessRequestMain 给客户端输出。
page的生命周期结束以后,页面输出就结束了,你的线程爱干嘛干嘛。