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();

最后的时间对比

c# Parallel并行运算

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

你可能感兴趣的:(C#)