当前位置: 首页 > news >正文

手机网站建设教程广东网站关键词排名

手机网站建设教程,广东网站关键词排名,做网站建设的怎么赢利,安溪网页定制最近遇到了一个业务场景&#xff0c;需要对List中的数据逐个发起http请求(List中的数据各自独立&#xff0c;对执行顺序无要求)&#xff0c;考虑到可以使用多线程加快处理速度。 封装了如下方法&#xff1a; /// <summary>/// 多线程处理数据-无返回值/// </summary&…

最近遇到了一个业务场景,需要对List中的数据逐个发起http请求(List中的数据各自独立,对执行顺序无要求),考虑到可以使用多线程加快处理速度。

封装了如下方法:

/// <summary>/// 多线程处理数据-无返回值/// </summary>/// <param name="list"></param>/// <param name="action">数据处理方法</param>/// <param name="threadCount">开启线程数量</param>/// <param name="waitFlag">是否等待全部结束</param>static void RunTask<T>(List<T> list, Action<T> action, int threadCount = 5, bool waitFlag = true){var queue = new ConcurrentQueue<T>(list);threadCount = Math.Min(threadCount, list.Count);Task[] tasks = new Task[threadCount];for (int i = 0; i < threadCount; i++){tasks[i] = Task.Run(() =>{while (queue.TryDequeue(out T t)){action(t);}});}if (waitFlag){Task.WaitAll(tasks);}}/// <summary>/// 多线程处理数据-有返回值/// </summary>/// <param name="list">待处理数据</param>/// <param name="func">数据处理方法</param>/// <param name="count">开启线程数量</param>static List<TReturn> RunTask<T, TReturn>(List<T> list, Func<T, TReturn> func, int threadCount = 5){var result = new ConcurrentBag<TReturn>();var queue = new ConcurrentQueue<T>(list);threadCount = Math.Min(threadCount, list.Count);var tasks = new Task[threadCount];for (int i = 0; i < threadCount; i++){tasks[i] = Task.Run(() =>{while (queue.TryDequeue(out T t)){result.Add(func(t));}});}Task.WaitAll(tasks);return result.ToList();}

使用示例:

public void DoSingle(User user, string param1, string param2){//HttpHelper.Get("http://xxxx/userid="+user.id);//doSomething();Console.WriteLine(user.Id + "-" + user.Name + "-" + param1 + "-" + param2);}public string DoSingle2(User user, string param1, string param2){//HttpHelper.Get("http://xxxx/userid="+user.id);//doSomething();Console.WriteLine(user.Id + "-" + user.Name + "-" + param1 + "-" + param2);return user.Id + "-666";}public class User{/// <summary>/// id/// </summary>public int Id { get; set; }/// <summary>/// 姓名/// </summary>public string Name { get; set; }}public void Test(){var list = new List<User> {new User { Id = 1, Name = "张三" },new User { Id = 2, Name = "李四" },new User { Id = 3, Name = "王五" }};RunTask(list, t => DoSingle(t, "参数1", "参数2"));var retList = RunTask(list, t => DoSingle2(t, "参数1", "参数2"));}

http://www.dt0577.cn/news/29379.html

相关文章:

  • 网赚类型网站建设百度seo公司
  • html5手机app网站模板免费下载深圳网络推广哪家好
  • 网站建设中数据库百度seo官方网站
  • 幼儿园主题网络图设计大班植物武汉seo优化代理
  • 武汉城市建设招标网站网页设计工资一般多少
  • 企业网站用什么做二次开发最快fifa最新世界排名
  • 商圈数据appseo搜索引擎优化是通过优化答案
  • 泸州市建设工程管理局网站短视频营销策划方案
  • 建网站一条龙域名被墙检测
  • 高端网站改版顾问关键词优化搜索排名
  • 微信网站怎么做的好名字吗引擎优化
  • 昆明医院网站建设优化关键词排名seo软件
  • 做网站如何选择关键词网站优化流程
  • 厦门规划建设局网站seo工作流程
  • 行业网站制作哪里可以接广告
  • 汉中公司做网站免费广告投放网站
  • 如何在网站上做用工登记利于seo的建站系统有哪些
  • 武汉光谷做网站价格网络营销推广有哪些方法
  • 重庆在线官网东莞seo代理
  • 做色情网站需要多少钱中国国家人事人才培训网
  • 上海第五届中国国际进口博览会直播windows7优化大师下载
  • 做一钓鱼网站吗百度快照客服人工电话
  • 专业定制网站建设智能优化网络营销的实现方式有哪些
  • 家装效果图网站web设计一个简单网页
  • 做黄网站有哪些台州seo服务
  • 做网站什么分类流量多seo神器
  • wordpress怎么删除预建网站杭州百度百家号seo优化排名
  • 颐高养生园网站建设seo主要优化哪些
  • 企业网站建设兴田德润实惠网络推广怎么做?
  • 南通做百度网站的公司友情链接的定义