当前位置:编程学习 > C#/ASP.NET >>

c# 多线程序下载网页的疑问

我现在数据库里面有一千多个网页地址,这些地址,我会定时提取,现在单线程是可以,但是效率比较低,所以我想写成多线成的形式,但是网上找了一些资料,都说得不太清楚,希望高人指点。

部分代码:

private void button1_Click(object sender, System.EventArgs e)
{
   int n=10;
   downloadThread =new Thread[n];//为线程申请资源,确定线程总数            
   for(int i=1; i<n; i++)//开启指定数量的线程数            
{
downloadThread[i] = new Thread(new ThreadStart(_GetProLrInfoWeek));//指定线程起始设置
downloadThread[i].Name = i.ToString(); 
downloadThread[i].Start();//逐个开启线程
}
}


private void _GetProLrInfoWeek () 
{   

   shiyixia(System.Threading.Thread.CurrentThread.Name.ToString());

}

private void shiyixia(string tt)
{
string sql="select top 1000 b_id,b_web,b_start from web_lr_date where b_flag=0 and b_start=0";
DataTable myt=wjlogic.GetSqlTable(sql);
if(myt!=null && myt.Rows.Count>0)
{
for(int i=0;i<myt.Rows.Count;i++)
{
string bid=myt.Rows[i][0].ToString().Trim();
string bweb=myt.Rows[i][1].ToString().Trim();
string tstart=myt.Rows[i][2].ToString().Trim();

UpDateThreadFlag(bid,tt); //更新线程状态

label1.Text=bid;
string content=GetHtmlCode(bweb);
}
   }
}

但是这样明显行不通,请问一下像这样的多线程怎么处理?望指教~谢谢 --------------------编程问答-------------------- 你应该是要在for(int i=0;i <myt.Rows.Count;i++) 这个循环里面开线程 --------------------编程问答--------------------
引用 1 楼 fengjian_428 的回复:
你应该是要在for(int i=0;i <myt.Rows.Count;i++) 这个循环里面开线程


这个具体怎么做啊,刚开始接触这个多线程问题,主要就是通过这10个线程来完成1000条记录的处理?每一个线程怎么来分配任务~ --------------------编程问答-------------------- 为什么我的多线程好像只能提高20%左右的效率?是不是什么地方写错了? --------------------编程问答-------------------- 去网上找找爬虫程序。。或者易做图程序应该对你有帮助。。 --------------------编程问答-------------------- 新建一个线程类,每个线程里添加一个ArrayList,
用来存放主程序分配的网址。

把一千个网址先取出来放在ArrayList里,
然后启动10个线程,每个线程分配100个网址,
线程内部,处理完一个接着处理下一个。
--------------------编程问答-------------------- 顶一个哈哈  --------------------编程问答-------------------- 线程结合队列 Queue --------------------编程问答-------------------- 关注一下~! --------------------编程问答-------------------- 有可能是在更新线程状态时没有锁定更新的资源:
lock(Lable1)
{
label1.Text=bid;
}
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,