zoukankan      html  css  js  c++  java
  • c# 进程间同步实现



     转自msdn 的。。

    // This example shows how a Mutex is used to synchronize access
    // to a protected resource. Unlike Monitor, Mutex can be used with
    // WaitHandle.WaitAll and WaitAny, and can be passed across
    // AppDomain boundaries.
     
    using System;
    using System.Threading;

    class Test
    {
        
    // Create a new Mutex. The creating thread does not own the
        
    // Mutex.
        private static Mutex mut = new Mutex();
        
    private const int numIterations = 1;
        
    private const int numThreads = 3;

        
    static void Main()
        {
            
    // Create the threads that will use the protected resource.
            for(int i = 0; i < numThreads; i++)
            {
                Thread myThread 
    = new Thread(new ThreadStart(MyThreadProc));
                myThread.Name 
    = String.Format("Thread{0}", i + 1);
                myThread.Start();
            }

            
    // The main thread exits, but the application continues to
            
    // run until all foreground threads have exited.
        }

        
    private static void MyThreadProc()
        {
            
    for(int i = 0; i < numIterations; i++)
            {
                UseResource();
            }
        }

        
    // This method represents a resource that must be synchronized
        
    // so that only one thread at a time can enter.
        private static void UseResource()
        {
            
    // Wait until it is safe to enter.
            mut.WaitOne();

            Console.WriteLine(
    "{0} has entered the protected area"
                Thread.CurrentThread.Name);

            
    // Place code to access non-reentrant resources here.

            
    // Simulate some work.
            Thread.Sleep(500);

            Console.WriteLine(
    "{0} is leaving the protected area\r\n"
                Thread.CurrentThread.Name);
             
            
    // Release the Mutex.
            mut.ReleaseMutex();
        }
    }


  • 相关阅读:
    webpack的最简单应用,只使用js与css的打包
    数据统计表插件,highcharts插件的简单应用
    C#中的特性 (Attribute) 入门 (二)
    C#中的特性 (Attribute) 入门 (一)
    SQLServer存储过程入门
    C#拖拽操作
    C#剪切板
    .Net中的IO
    Android四大组件-服务
    AlertDialog对话框
  • 原文地址:https://www.cnblogs.com/gwazy/p/832579.html
Copyright © 2011-2022 走看看