zoukankan      html  css  js  c++  java
  • c# Parallel并行运算

    Parallel这个类可以调度你的电脑中的所有CPU共同运算。我做了一个并行运算与普通运算的对比,并记录了时间

    并行运算方法:

    string str = "";
                DataTable dt=new DataTable();
                dt.Columns.Add("name", typeof(System.String));
                
                for (int i = 0; i <10000; i++)
                {
                    DataRow drt = dt.NewRow();
                    drt[0] = "hh"+i;
                    dt.Rows.Add(drt);
                }
                DataRow[] rules = new DataRow[dt.Rows.Count];
                dt.Rows.CopyTo(rules, 0);
                // 第一个
                Stopwatch watch1 = new Stopwatch();
                watch1.Start();
                Parallel.ForEach<DataRow>(rules, (dr) =>
                {
                    str += dr[0];
                    str += dr[0];
                });
                watch1.Stop();
                txtWat1.Text = watch1.ElapsedMilliseconds.ToString();

    普通运算的方法

    // 第二个
                Stopwatch watch2 = new Stopwatch();
                watch2.Start();
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    DataRow dr = dt.Rows[i];
                    str += dr[0];
                    str += dr[0];
                }
                watch2.Stop();
                txtWat2.Text = watch2.ElapsedMilliseconds.ToString();

    最后的时间对比

    可以知道用Parallel.ForEach<DataRow>这个方法算毕普通的要快很多。不过不能所有的循环都用这个方法,因为这个方法增加了调度CPU的时间。所以不适合少量的数据。更加适合大量数据的计算

  • 相关阅读:
    个人总结13
    构建之法阅读笔记一
    个人总结12
    个人总结11
    地铁时光机第一阶段冲刺十
    地铁时光机第一阶段冲刺九
    地铁时光机第一阶段冲刺八
    单词 统计续
    地铁时光机第一阶段冲刺七
    个人总结10
  • 原文地址:https://www.cnblogs.com/honghong75042/p/3156090.html
Copyright © 2011-2022 走看看