苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 4531|回复: 3

[其他] 多线程访问网页如果取得每条线程的返回值

[复制链接]
发表于 2013-7-22 18:34:06 | 显示全部楼层 |阅读模式
飞哥,代码想实现的是利用信号量实现多线程从网站上获取资料,但是不知道咋取到返回值,望飞哥指点一下。
  1. private static Semaphore sem = new Semaphore(10, 10);
  2.       
  3.         static void Main(string[] args)
  4.         {
  5.             for (int i = 0; i < 10; i++)
  6.             {
  7.                 string a = string.Empty;
  8.                 Thread t = new Thread(new ThreadStart(delegate
  9.                 {
  10.                     a=Begin(i);
  11.                 }));
  12.                 t.Start();
  13.                 sem.WaitOne();
  14.                 Thread.Sleep(10);
  15.                 Console.WriteLine("返回值输出 " + a);
  16.             }
  17.             Console.ReadKey();
  18.         }

  19.         public static string Begin(int i)
  20.         {

  21.             Thread.Sleep(1000);
  22.             Console.WriteLine("参数输出 "+i.ToString());
  23.             sem.Release();
  24.             return i.ToString();
  25.         }
复制代码


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2013-7-22 20:23:11 | 显示全部楼层
问题已经解决,飞哥帮忙结贴哈!!!
 楼主| 发表于 2013-7-22 20:24:31 | 显示全部楼层
  1. private static Semaphore sem = new Semaphore(10, 10);
  2.       
  3.         static void Main(string[] args)
  4.         {
  5.             for (int i = 0; i < 100; i++)
  6.             {
  7.                 Thread t = new Thread(new ThreadStart(delegate
  8.                 {
  9.                     Bg(i);
  10.                 }));
  11.                 t.Start();
  12.                 sem.WaitOne();
  13.                 Thread.Sleep(10);
  14.             }
  15.             Console.ReadKey();
  16.         }

  17.         public static void Bg(int i)
  18.         {

  19.            string a= Begin(i);
  20.            Console.WriteLine("返回值输出 " + a);
  21.         }
  22.         
  23.         
  24.         
  25.         public static string Begin(int i)
  26.         {
  27.             
  28.             Thread.Sleep(5000);
  29.             Console.WriteLine("参数输出 "+i.ToString());
  30.             sem.Release();
  31.             return i.ToString();
  32.         }
复制代码
贴一下代码,本人菜鸟一个,大家不要喷,要是还有啥好的办法望赐教~!!!
发表于 2013-7-23 08:05:44 | 显示全部楼层
来晚了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-27 05:07

© 2014-2021

快速回复 返回顶部 返回列表