首页 > 代码库 > 一个简单示例看懂.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 并行编程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。