C#多线程实例之Parallel.Invoke()

简介

如何让代码执行得更快,如何充分发挥多核CPU的性能,是程序员需要思考的问题. 本文通过简单易懂的实例,让大家快速了解C#多线程的基本方法.

参考文档:http://www.cnblogs.com/yunfeifei/p/3993401.html

实例

using System;
using System.Diagnostics;
using System.Threading;
using System.Threading.Tasks;

namespace parallelInvoke {

public class program {
    public static void Main(String[] args) {
        parallelInvokeMthod pi = new parallelInvokeMthod();
        pi.Method1();
        pi.Method2();
    }
}

class parallelInvokeMthod {
    private Stopwatch stopWatch = new Stopwatch();
    // Run1 taks 1s
    public void Run1() {
        Thread.Sleep(1000);
        Console.WriteLine("Run1 = 1s" );
    }
    // Run2 taks 3s`
    public void Run2() {
        Thread.Sleep(3000);
        Console.WriteLine("Run2 = 3s");
    }
    // Run1 and Run2 take 4s by using Parallel.Invoke()
    public void Method1() {
        stopWatch.Start();
        Parallel.Invoke(Run1,Run2);
        stopWatch.Stop();
        Console.WriteLine("Method1 total run time is " + stopWatch.ElapsedMilliseconds +" ms");
    }
    //Run1 and Run2 take 6s by using normall method
    public void Method2() {
        stopWatch.Restart();
        Run1();
        Run2();
        stopWatch.Stop();
        Console.WriteLine("Method2 total run time is " + stopWatch.ElapsedMilliseconds+" ms");
    }

}
}

执行结果

转载于:https://my.oschina.net/u/3611008/blog/2876087

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值