日期:2014-05-19  浏览次数:20438 次

(在线等高手指点)我用C#做了一个页面采集的WEB应用,请教怎样加入多线程以优化性能?
RT
因为以前没接触过线程方面,现在的项目没用到线程,所以速度有点慢,
另外我采集的内容只是做了处理然后显示在页面里,并不用保存到数据库.
请高手指点


(级别不够,只能放100分,分不够另给)

------解决方案--------------------
Thread t=new Thread(new ParameterizedThreadStart( "函数名称 "));
t.Start();
------解决方案--------------------
多线程,线程池,下载用异步去处理
------解决方案--------------------
觉得楼主的结构不是很清楚,web方面应该只是一个负责现实的层,数据采集应该是数据层或者业务层的事,把采集到的数据,放到一个数据源里,比如数据库,缓存之类的地方,然后让web层来显示
在web层作多线程问题很多,一般都不建议采用
------解决方案--------------------
执行一个线程采用如下方法
不带参数线程
ThreadStart start = new ThreadStart(你的方法名);
Thread t = new Thread(start);
t.Start();

带参数线程
ParameterizedThreadStart start = new ParameterizedThreadStart(你的方法名);
Thread t = new Thread(start);
t.Start((object)方法参数);

多线程 只要在循环中执行以上代码即可
------解决方案--------------------
带参数线程
此委托在 .NET Framework 2.0 版中是新增的
------解决方案--------------------

C#中的多线程编程
http://blog.csdn.net/carefree_journey/archive/2005/12/20/556826.aspx
------解决方案--------------------
采集的代码是放在业务层
----
采集的代码是怎么运转的,是供Web调用的吧,也就是说,web上如果没有请求,采集的代码就不会运行
如果是这样,用不用多线程,没有区别,多线程并不会提高性能,也就是说,你等web这边有了请求,再去采集数据,那么你用多线程,和用循环处理,理论上是没有区别的
我说的结构问题就是这个意思,如果想用多线程,就要把这两部分分开,采集干采集的,采集到的数据,放到一个地方,比如数据库,web显示web的,web显示从数据库里拿,要是这样,多线程还有点意义

------解决方案--------------------
MSDN讲得比较清除,也带了实例,楼主可以直接查看
------解决方案--------------------
跟循环肯定有区别. 循环是必须等一次循环结束了才运行第二次循环,线程可以是同步的.