C# 防止程序多开(重复开启)

📝 ✏️ 📌
C# 防止程序多开(重复开启)

Mutex(mutual exclusion,互斥)是 .Net Framework 中提供跨多个线程同步访问的一个类。它非常类似了 Monitor 类,因为他们都只有一个线程能拥有锁定。而操作系统能够识别有名称的互斥,我们可以给互斥一个唯一的名称,在程序启动之前加一个这样的互斥。这样每次程序启动之前,都会检查这个命名的互斥是否存在。如果存在,应用程序就退出。

下面我们使用互斥体,做到同时只运行一个程序:

示例1

bool isNotRunning; //互斥体判断

System.Threading.Mutex instance = new System.Threading.Mutex(true, "MutexName", out isNotRunning); //同步基元变量

if (!isNotRunning) // 如果不是未运行状态

{

MessageBox.Show("程序已在运行");

Environment.Exit(1);

}

MessageBox.Show("欢迎使用本软件");

示例2

bool isAppRunning = false;

//设置一个名称为进程名的互斥体

Mutex mutex = new Mutex(true, System.Diagnostics.Process.GetCurrentProcess().ProcessName, out isAppRunning);

if (!isAppRunning)

{

MessageBox.Show("程序已运行,不能再次打开!");

Environment.Exit(1);

}

MessageBox.Show("欢迎使用本软件");

🔗 相关推荐

✨ 💡 🎯
天涯明月刀手游拍卖行位置攻略
365bet滚球网

天涯明月刀手游拍卖行位置攻略

📅 07-29 👀 4346
去培训班学PS要多少钱?揭秘真实学费,小白避坑指南!
三养火鸡面
365网

三养火鸡面

📅 07-20 👀 9051