using System;
using System.Threading;
using System.Windows.Forms;
namespace MyWinFormsApp
{
static class Program
{
// 定义一个全局互斥体
private static Mutex mutex = new Mutex(false, "MyWinFormsApp_Mutex");
[STAThread]
static void Main()
{
// 尝试获取互斥体的所有权
bool hasHandle = false;
try
{
hasHandle = mutex.WaitOne(0);
if (!hasHandle)
{
MessageBox.Show("程序已经在运行中,请勿重复启动!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
catch (AbandonedMutexException)
{
hasHandle = true;
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
// 释放互斥体
if (hasHandle)
{
mutex.ReleaseMutex();
}
}
}
}