一个简单示例看懂.Net 并行编程
Posted 微软专题
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个简单示例看懂.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 start Thread 9 end Thread 9 start Thread 9 end Thread 9 start Thread 9 end Thread 9 start Thread 9 end Thread 9 start Thread 9 end Sequential loop time in milliseconds: 5004 Executing parallel loop... Thread 9 start Thread 10 start Thread 11 start Thread 12 start Thread 13 start Thread 9 end Thread 10 end Thread 11 end Thread 12 end Thread 13 end Parallel loop time in milliseconds: 1024 Press any key to exit.
附:官方示例
以上是关于一个简单示例看懂.Net 并行编程的主要内容,如果未能解决你的问题,请参考以下文章