使用Mutex限制程序只能运行一个实例(C#)
[STAThread]
static void Main(string[] arg)
{
bool initiallyOwned = true;
bool isCreated;
Mutex m = new Mutex(initiallyOwned, "LEDController", out isCreated);
if (!(initiallyOwned && isCreated))
{
MessageBox.Show(Properties.Resources.StringMorethanOneProgramWarning);
Application.Exit();
}
else
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new ControllerForm(arg));
m.ReleaseMutex(); //重要 如果不释放,每个应用程序都会重新生成一个IntelliTrace.exe线程,达不到互斥的作用
}
}