亲宝软件园·资讯

展开

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

红薯 人气:0
想了解C#使用Parallel类进行多线程编程实例的相关内容吗,红薯在本文为您仔细讲解C#使用Parallel类进行多线程编程的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:C#,Parallel类,多线程,下面大家一起来学习吧。

本文实例讲述了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#程序设计有所帮助。

加载全部内容

相关教程
猜你喜欢
用户评论