使用内核对象Mutex可以防止同一个进程运行两次

用互斥法实现防止程序重复运行,使用内核对象Mutex可以防止同一个进程运行两次。注意:是名称相同的进程,而不是exe,因为exe程序可以改名。

在Program.cs中修改

首先添加using System.Threading;引用

然后原内容改为下面所示

复制代码
    static class Program
    {
        private static Mutex myMutex;
        private static bool requestInitialOwnership = true;
        private static bool mutexWasCreated;
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            //原来代码
            //Application.EnableVisualStyles();
            //Application.SetCompatibleTextRenderingDefault(false);
            //Application.Run(new Form1());

            //新代码
            myMutex = new Mutex(requestInitialOwnership, "CanbeAnything ", out mutexWasCreated);
            if (mutexWasCreated)
            {
                Application.Run(new Form1());
                myMutex.WaitOne();
            }
        }
    }
复制代码

 

posted @   DebugLZQ  阅读(1711)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· Open-Sora 2.0 重磅开源!
点击右上角即可分享
微信分享提示