源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2020-11-21 06:41 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要: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#程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部