概述
bool mutexCreated;
var mutex = new Mutex(false, "sigletonAppMutex", out mutexCreated);
参数说明
| 参数位置 | 参数 | 说明 |
| 1 | false | |
| 2 | sigletonAppMutex | 设置互斥的名称 |
| 3 | mutexCreated | 该名称的互斥是否存在 |
特点
1.可以跨进程,这是个系统级别的互斥。
2.用于控制程序不能打开两次。
3.当日也可以做普通的互斥使用。(锁:mutex.WaitOne();/释放:mutex.ReleaseMutex();)
1.代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace ConsoleApp5
{
class Program
{
static void Main(string[] args)
{
bool mutexCreated;
var mutex = new Mutex(false, "sigeltonAppMutex", out mutexCreated);
if (!mutexCreated) {
Console.WriteLine("程序已打开");
Console.WriteLine("Exting.");
Console.ReadKey();
return;
}
Console.WriteLine("hello word");
Console.ReadKey();
}
}
}
2.运行效果
2.1第一次打开

2.2 第二次打开

使用Mutex实现单例模式防止程序重复启动
本文介绍了如何利用C#中的Mutex类创建一个跨进程的互斥锁,确保应用程序只能打开一次。通过设置互斥锁名称并检查其是否存在,避免了程序的多次启动。示例代码展示了在主程序中创建Mutex实例并检查是否已存在,如果存在则提示程序已打开并退出,否则继续执行。这是一种有效的控制程序单一实例的方法。
1218

被折叠的 条评论
为什么被折叠?



