CRUD搬砖工 2022-03-03 10:47 采纳率: 0%
浏览 36
已结题

C#中简单的方法并行Parallel.Invoke比串行慢


using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Diagnostics;
using System.Threading;
using System.Threading.Tasks;

namespace ConsoleApp2
{
    class Program
    {
        private Stopwatch stopWatch = new Stopwatch();
        static void Main(string[] args)
        {
            
            new Program().ParallelInvokeMethod();
        }

        public void Run1(string name)
        {
            Stopwatch stopWatch1 = new Stopwatch();
            Thread.Sleep(10);
            stopWatch1.Start();
            //for (int i = 0; i < 99999999; i++) { }
        Console.WriteLine(name+", Task 1 is cost "+ stopWatch1.ElapsedMilliseconds + " sec");
            //stopWatch1.Stop();
        }
        public void Run2(string last)
        {
            Thread.Sleep(20);
            Stopwatch stopWatch2 = new Stopwatch();
            stopWatch2.Start();
            //for (int i = 0; i < 99999999; i++) { }
            Console.WriteLine(last+", Task 2 is cost "+ stopWatch2.ElapsedMilliseconds + " sec");
            //stopWatch2.Stop();
        }

        public  void ParallelInvokeMethod()
        {
            stopWatch.Start();
            String name = "XXX";
            String last = "YYY";
            Parallel.Invoke(()=>Run1(name), ()=>Run2(last));
            stopWatch.Stop();
            Console.WriteLine("并行 run " + stopWatch.ElapsedMilliseconds + " ms.");

            stopWatch.Restart();
            Run1(name);
            Run2(last);
            stopWatch.Stop();
            Console.WriteLine("串行 run " + stopWatch.ElapsedMilliseconds + " ms.");
        }
    }
}

并发运行效果,比串行耗时还长,是因为创建了线程的时候需要耗时,那这个 Parallel.Invoke并行最多处理几秒钟以上的了,对于简单的并行是起不到效果。

img

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 3月11日
    • 创建了问题 3月3日

    悬赏问题

    • ¥15 关于#python#的问题:在跑ldsc数据整理的时候一直抱这种错误,要么--out识别不了参数,要么--merge-alleles识别不了参数(操作系统-linux)
    • ¥15 PPOCRLabel
    • ¥15 网友们我该怎么办啊,急
    • ¥15 混合键合键合机对准标识
    • ¥100 现在不懂的是如何将当前的相机中的照片,作为纹理贴图,映射到扫描出的模型上
    • ¥15 目标跟踪,计算机视觉
    • ¥15 魔霸ROG7 pro,win11.息屏后会显示黑屏,如图,如何解决?(关键词-重新启动)
    • ¥15 有没有人知道这是哪里出了问题啊?要怎么改呀?
    • ¥200 C++表格文件处理-悬赏
    • ¥15 Windows Server2016本地登录失败