开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1592|回复: 2
收起左侧

[C#图文教程] C# 4.0的并行任务

[复制链接]

结帖率:33% (1/3)
发表于 2013-2-19 16:38:15 | 显示全部楼层 |阅读模式   上海市上海市
C# 4.0支持并行任务,并行任务能提高CPU的利用率(尤其是当前CPU基本都是多核情况下),缩短处理时间
  1. using System;
  2. using System.Threading;
  3. using System.Diagnostics;

  4. namespace ParrallelTask
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             Stopwatch stopWatch = new Stopwatch();
  11.             stopWatch.Start();
  12.             DoSomeWork();
  13.             DoSomework2();
  14.             stopWatch.Stop();
  15.             Console.WriteLine("Time consumed: {0}", stopWatch.Elapsed);
  16.         }

  17.         public static void DoSomeWork()
  18.         {
  19.             Thread.Sleep(1000);
  20.             Console.WriteLine("Work completed");
  21.         }
  22.         public static void DoSomework2()
  23.         {
  24.             Thread.Sleep(1000);
  25.             Console.WriteLine("Work completed2");
  26.         }

  27.     }
  28. }
复制代码
  1. using System;
  2. using System.Threading;
  3. using System.Diagnostics;
  4. using System.Threading.Tasks;


  5. namespace ParrallelTask
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             Stopwatch stopWatch = new Stopwatch();
  12.             stopWatch.Start();
  13.             Parallel.Invoke(
  14.                   new Action(DoSomeWork),
  15.                   new Action(DoSomework2)
  16.                 );
  17.             stopWatch.Stop();
  18.             Console.WriteLine("Time consumed: {0}", stopWatch.Elapsed);
  19.         }

  20.         public static void DoSomeWork()
  21.         {
  22.             Thread.Sleep(1000);
  23.             Console.WriteLine("Work completed");
  24.         }
  25.         public static void DoSomework2()
  26.         {
  27.             Thread.Sleep(1000);
  28.             Console.WriteLine("Work completed2");
  29.         }

  30.     }
  31. }
复制代码
  1. List<int> nums = new List<int> { 1, 2, 3, 4 };
  2. Parallel.ForEach(nums, (item) =>
  3. {
  4.    Console.WriteLine("针对集合元素{0}的一些工作代码……", item);
  5. });
复制代码
  1. static void Main(string[] args)
  2. {
  3.    Parallel.Invoke(
  4.       () =>
  5.       {
  6.          Console.WriteLine("任务1……");
  7.        },
  8.       () =>
  9.       {
  10.          Console.WriteLine("任务2……");
  11.        });
  12.     Console.ReadKey();
  13. }
复制代码
发表于 2013-4-20 10:39:14 | 显示全部楼层   山西省太原市
菜鸟看不懂,大概是多线程处理,怎么并行不知道了
回复 支持 反对

使用道具 举报

结帖率:33% (3/9)
发表于 2013-2-27 21:39:22 | 显示全部楼层   江苏省宿迁市
就是多线程吗?
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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