本帖最后由 tylrr 于 2013-12-21 12:13 编辑
谢谢站长的指点,我觉得thread虽然灵活,但是要增加很多代码来控制,觉得很麻烦,所以想使用net4.0新增的Parallel特性 来处理。上述代码修改后如下。问题:请问使用Parallel.Invoke() 和 Task.Factory.StartNew() 哪个更好呢?若要实现,以下代码应该如何修改?另外如何在Parallel.ForEach中更新界面呢? 程序老提示出错,最后不得不把更新界面的那部分去掉了。 谢谢指点
[C#] 纯文本查看 复制代码 public static List<string> links = new List<string>(); //声明全局变量 链接为links List
private void button1_Click(object sender, EventArgs e)
{
//设置最大线程数
ThreadPool.SetMaxThreads(2, 2);
//采集
Parallel.ForEach(links, (linkitem) =>
{
getItemDetail(linkitem);
});
toolStripStatusLabel1.Text = "采集完毕。";
}
private void getItemDetail(string link)
{
try{
//采集数据代码第一部分
if (jieguo.Count != 15) //如果得到的数组元素少于15个代表采集失败
throw new Exception();
}
catch (Exception e)
{
}
。。。。。。。。。
}
|