首页 > 编程 > C# > 正文

C#使用Parallel类进行多线程编程实例

2020-01-24 01:43:05
字体:
来源:转载
供稿:网友

本文实例讲述了C#使用 Parallel 类进行多线程编程的方法。分享给大家供大家参考。具体如下:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;using System.Diagnostics;using System.Runtime.InteropServices;namespace Threads{  class Program  {    [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]    public static extern int GetCurrentProcessorNumber();    private static int criticalSection = 0;    private static object lockObject = new object();    static void Main(string[] args)    {      Console.WriteLine("==================Sequential calls==============");      Console.WriteLine();      Target();      Target();      Target();      Target();      Target();      Target();      Target();      Target();      Console.WriteLine();      Console.WriteLine("==================Parallel calls==============");      Console.WriteLine();      Action action = new Action(Target);      Parallel.Invoke(new Action[] { action, action, action, action, action, action, action, action });      Console.ReadKey();    }    private static void Target()    {      Thread.Sleep(2000);      lock (lockObject)      {        criticalSection++;        Console.WriteLine(string.Format("Thread ID: {0} and Processor ID: " +          "{1} Critical Variable Value: {2}",          Thread.CurrentThread.ManagedThreadId,          GetCurrentProcessorNumber(), criticalSection));      }    }  }}

希望本文所述对大家的C#程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表