【C#】 Mutex简单示例

【C#】 Mutex简单示例Mutex简单示例:namespaceMutexTest{classProgram{//用于Mutex的TeststaticvoidMain(string[]args){System.Security.Cryptography.MD5md5=newSystem.Securi…

大家好,又见面了,我是你们的朋友全栈君。

Mutex简单示例:

namespace MutexTest
{
    class Program
    {
        //用于Mutex的Test
        static void Main(string[] args)
        {
            System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
            string dir = System.Environment.CurrentDirectory;
            dir = dir.Replace("/", "");
            dir = dir.Replace("\\", "");
            byte[] result = md5.ComputeHash(System.Text.Encoding.Default.GetBytes(dir));
            string md5Text = System.Text.Encoding.Default.GetString(result);
            bool runOne;
            System.Console.WriteLine("目录层级的Muxtex测试,请点开多个此程序控制台:");
            //增加using防止Muxtex在程序运行时被垃圾回收
            using (System.Threading.Mutex run = new System.Threading.Mutex(true, md5Text, out runOne))
            {
                if (!runOne)
                {
                    System.Console.WriteLine("同一目录已经运行了一个程序实例,无法重复运行");
                    System.Console.ReadLine();
                    return;  //增加return语句,防止用户回车后继续运行程序;
                }

                try
                {
                    while (true)
                    {
                        //程序执行主体代码
                        System.Console.Write(".");
                        System.Threading.Thread.Sleep(1000);
                    }
                }
                finally
                {
                    //释放当前Mutex一次
                    run.ReleaseMutex();
                }
            }


        }
    }
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/153223.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 用数据说话,外贸B2C产品选择(上篇)-热门搜索法

    用数据说话,外贸B2C产品选择(上篇)-热门搜索法

    2022年1月30日
    58
  • C语言文件打开方式简介

    C语言文件打开方式简介1、“r”以只读方式打开一个文件;2、“w”以只写方式打开一个文件;3、“a”打开一个文件追加;4、“rb”以只读方式打开一个二进制文件;5、“rw”以只写方式打开一个二进制文件;6、“ra”打开一个二进制文件追加;7、”r+”以读写方式打开一个文件;8、“w+”以读写方式建立一个文件;9、“a+”以读写方式打开一个文件追加;10、“rb+”以读写方式打开一个二

    2022年7月13日
    16
  • 缺陷报告怎么写_注意缺陷报告单

    缺陷报告怎么写_注意缺陷报告单缺陷报告怎么写意义:开发人员和测试人员沟通的重要工具1、缺陷编号(DefectID)——提交缺陷的顺序2、缺陷标题(summary)——简明扼要的描述缺陷3、缺陷的发现者(Defectby)–4、发现缺陷的日期(Detectedondata)—-当天5、缺陷所属的模块(subject)————测试哪个功能模块的时候发现的,开发者可以由此决定谁修改该bug6、发现缺陷版本(Detectedinrelease)测试的是哪个版本(测试是回归

    2026年1月15日
    7
  • NoSQL中的行存储与列存储

    NoSQL中的行存储与列存储在已知的几种大数据处理软件中,Hadoop的HBase采用列存储,MongoDB是文档型的行存储,Lexst是二进制型的行存储。在这里,我不讨论这些软件的技术和优缺点,只围绕机械磁盘的物理特质,分析行存储和列存储的存储特点,以及由此产生的一些问题和解决办法。  一.结构布局  行存储数据排列  列存储数据排列  表格的灰色背景部分表示行列结构,白色背景部分表示数据的

    2022年7月14日
    12
  • python2 nonlocal_python unboundlocalerror

    python2 nonlocal_python unboundlocalerrornonlocal关键字用来在函数或其他作用域中使用并修改外层(非全局)变量。意义:nonlocal使用能够弥补global和闭包的两个问题。对于global,只能使用全局变量,对于嵌套函数中的内层函数而言,无法通过global使用外层函数,通过nonlocal就可以,当然直接读取也可以(闭包)。对于闭包,内层函数可以读取外层函数的变量,但是如果在内部函数中尝试进行修改外部变量,且外部变量为不可变类型,则需要在变量前加nonlocal,如果变量为可变类型,则不需要添加nonlocal。”’nonl

    2025年9月21日
    8
  • jlink 与 swd 接口定义

    jlink 与 swd 接口定义1.JLink介绍J-Link是SEGGER公司为支持仿真ARM内核推出的JTAG仿真器。J-Link支持所有基于ARM架构的处理器或微控制器配合IAREWAR,ADS,KEIL等集成开发环境进行开发过程中进行单步控制执行调试。J-Link除了可以配合集成开发环境进行调试程序,进行程序下载之外,J-Link还可以单独使用。比如在产品的生产环节中,就可以单独使用J-Link进行固件的下载。JLink,SWD接口定义缺口向左,左边为JLink接口定义,右边为SWD接口定义JTAG

    2022年4月25日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号