如何防止一个C#开发的EXE被多次运行

 我来答
greystar_cn
2018-01-18 · 知道合伙人软件行家
greystar_cn
知道合伙人软件行家
采纳数:16407 获赞数:17260
本人主要从事.NET C#方向的技术开发工作,具有10多年的各类架构开发工作经验。

向TA提问 私信TA
展开全部
using System;
using System.Threading;
using System.Windows.Forms;

namespace OnlyInstanceRunning
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread] static void Main()
{
#region 方法一:使用互斥量
bool createNew;

// createdNew:
// 在此方法返回时,如果创建了局部互斥体(即,如果 name 为 null 或空字符串)或指定的命名系统互斥体,则包含布尔值 true;
// 如果指定的命名系统互斥体已存在,则为false
using (Mutex mutex = new Mutex(true, Application.ProductName, out createNew))
{
if (createNew)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
// 程序已经运行的情况,则弹出消息提示并终止此次运行
else
{
MessageBox.Show("应用程序已经在运行中...");
System.Threading.Thread.Sleep(1000);

// 终止此进程并为基础操作系统提供指定的退出代码。
System.Environment.Exit(1);
}
}

#endregion
}
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式