日期:2014-05-16  浏览次数:20886 次

请问用C#比较串行和并行计算时间,为什么加thread.sleep(1)串行比较并行慢,不加就快?
请问用C#比较串行和并行计算时间,为什么加thread.sleep(1)串行比较并行慢,不加就快?
程序如下:
/*************************************************************************/
            /*******************串行按行求和存入数组sum_c中*************************/
            /*************************************************************************/
            watch.Start();//开始测试时间
            Console.WriteLine("\n\n串行\0行和");
            for (int r = 0; r < r_a; r++)
            {
                for (int c = 0; c < c_b; c++)
                {
                    Serialsum[r, c_b - 1] += m3[r, c];
                    //Thread.Sleep(1);
                }
                // Console.Write("第{0}行输出{1}\t", r + 1, Serialsum[r, c_b-1]);
                Console.Write("{0}\t", Serialsum[r, c_b - 1]);
                //r_storage[r,1]=Serialsum[r,c_b-1];
                //Console.Write("\n数组r_storage{0}\t", r_storage[r, 1]);
            }
           // Console.Write("行求和输出{1}\t\t", sum_c);
            Console.Write("\n串行\0列和\n");

            Serialsum = null;//数组及时清零
            Serialsum = new int[r_a, c_b];//重新定义

            /*******************串行按列求和存入数组sum_c中************************/
            for (int c = 0; c < c_b; c++)
            {
                for (int r = 0; r < r_a; r++)
                {
                    Serialsum[r_a - 1, c] += m3[r, c];
                   // Thread.Sleep(1);
                }