首页 > 代码库 > 一个简单示例看懂.Net 并行编程

一个简单示例看懂.Net 并行编程

此示例尽量以最简洁的代码演示并行处理的功能,此示例代码中分别用单线程和多线程分别执行5次耗时1秒的操作。打印出执行过程及耗时。

以下为示例代码,.net framework要求4.0以上。

using System;using System.Collections.Generic;using System.Collections.Concurrent;using System.Diagnostics;using System.Linq;using System.Threading;using System.Threading.Tasks;namespace ParallelDemo{    class Program    {        static void Main(string[] args)        {            // First do the sequential version.            Console.WriteLine("Executing sequential loop...");            Stopwatch stopwatch = new Stopwatch();            stopwatch.Start();
//单线程执行
for (int i = 0; i < 5; i++) { TestMethod(); } stopwatch.Stop(); Console.WriteLine("Sequential loop time in milliseconds: {0}", stopwatch.ElapsedMilliseconds); // Reset timer and results matrix. stopwatch.Reset(); Console.WriteLine("Executing parallel loop..."); stopwatch.Start();
//多线程执行 Parallel.For(
0, 5, i => TestMethod()); stopwatch.Stop(); Console.WriteLine("Parallel loop time in milliseconds: {0}", stopwatch.ElapsedMilliseconds); // Keep the console window open in debug mode. Console.WriteLine("Press any key to exit."); Console.ReadKey(); } static void TestMethod() { var tid = Thread.CurrentThread.ManagedThreadId; Console.WriteLine("Thread {0} start", tid); Thread.Sleep(1000); Console.WriteLine("Thread {0} end", tid); } }}

运行结果

Executing sequential loop...Thread 9 startThread 9 endThread 9 startThread 9 endThread 9 startThread 9 endThread 9 startThread 9 endThread 9 startThread 9 endSequential loop time in milliseconds: 5004Executing parallel loop...Thread 9 startThread 10 startThread 11 startThread 12 startThread 13 startThread 9 endThread 10 endThread 11 endThread 12 endThread 13 endParallel loop time in milliseconds: 1024Press any key to exit.

附:官方示例

 

一个简单示例看懂.Net 并行编程