• 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();
        }
    }


  • 相关阅读:
    Python 选择排序
    ORACLE和MYSQL的简单区别
    测试基础
    mongoDB新增数据库
    支付-测试点
    安装 selenium 对于python而言属于一个第三方的模块
    使用Fiddler抓包抓取不了数据包的问题
    软件测试技术之可用性测试之WhatsApp Web
    集成腾讯Bugly日志- Android(1)
    C++中的各种可调用对象
  • 原文地址:https://www.cnblogs.com/gwazy/p/832579.html
Copyright © 2020-2023  润新知