• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#并行编程之数据并行

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

所谓的数据并行的条件是:

      1、拥有大量的数据。

      2、对数据的逻辑操作都是一致的。

      3、数据之间没有顺序依赖。

运行并行编程可以充分的利用现在多核计算机的优势。记录代码如下:

 public class ParallerFor
    {
        public List<string> studentList;

        public ParallerFor() {
            this.studentList = new List<string>();
            for (int i = 0; i < 50; i++) {
                this.studentList.Add("xiaochun"+i.ToString());
            }
        }

        public void ParallerTest() {
            var sw = Stopwatch.StartNew();
            foreach (string str in this.studentList) {
                Console.WriteLine("this is sync "+str);
                Thread.Sleep(800);
            }
            Console.WriteLine("运行时间:"+sw.Elapsed.ToString());
        }

        public void ParallerAsyncTest() {
            var sw = Stopwatch.StartNew();
            Action<int> ac = (i) => { Console.WriteLine("this is async " + this.studentList[i]); Thread.Sleep(800); };
            Parallel.For(0, this.studentList.Count,ac);//这里的0是指循环的起点
            Console.WriteLine("运行时间:" + sw.Elapsed.ToString());
        }

        public void ParallalForEachTest() {
            var sw = Stopwatch.StartNew();
            Action<string> ac = (str) => {
                    int num = int.Parse(str.Replace("xiaochun",string.Empty));
                    if (num > 10) {
                        Console.WriteLine(str);
                        Thread.Sleep(1000);
                    }
            };
            //限定最大并行数目
            ParallelOptions op = new ParallelOptions();
            op.MaxDegreeOfParallelism = 4;
            Parallel.ForEach(this.studentList,op,ac);
            //这里没有限定最大并行数目
            //Parallel.ForEach(this.studentList,ac);
        }

    }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#11的这个新特性,我愿称之最强!发布时间:2022-07-14
下一篇:
C#数据绑定(1)—简单的文本框绑定发布时间:2022-07-14
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap