码迷,mamicode.com
首页 > 其他好文 > 详细

Mutex对象

时间:2018-08-20 15:34:00      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:实例   显示   adl   mutex   机房收费   start   实例化   打开   val   

案例一

举一个例子,设计模式中的单例模式,记得当时做机房收费系统的时候就用的单例模式防止一个界面被实例多次,而Mutex对象能达到同样的效果,防止界面被实例化多次,起到控制线程的作用。

案例二

如果大家还是不太理解,举一个更简单的例子就是把Mutex看做一个出租车,乘客看做线程。乘客首先等车,然后上车,最后下车。当一个乘客在车上时,其他乘客就只能等他下车以后才可以上车

 

static void Main(string[] args)
        {
            bool flag = false;
            Mutex mutex = new Mutex(true,"MyMutex",out flag);
            Console.WriteLine("Flag value is {0}", flag.ToString());
            if (flag)
            {
                Console.WriteLine("Start Running");
            }
            else
            {
                Console.WriteLine("The Other Thread is running");
                Thread.Sleep(TimeSpan.FromSeconds(5));
                Environment.Exit(-1);
            }
            Console.ReadLine();
           

        }

 

打开程序第一次时,显示 Start Runing .

不要关闭程序,再打开程序一次。

程序显示 The Other Thread is running

Mutex对象

标签:实例   显示   adl   mutex   机房收费   start   实例化   打开   val   

原文地址:https://www.cnblogs.com/sportdog/p/9505442.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!