|
在VC#下利用互斥阻止同進程多實例運行的正確代碼using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Threading;//Mutex類需要
namespace WindowsFormsApplication2
{
static class Program
{
///
/// 應用程序的主入口點。
///
[STAThread]
static void Main()
{
bool createdNew;
Mutex mutexFile = new Mutex(false, "WindowsFormsApplication2", out createdNew);//創建互斥
if (createdNew)
{//成功創建無進程運行
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
// mutexFile.ReleaseMutex();//不應該調用此函數
mutexFile.Close();//釋放句柄
}
else
{//創建失敗有進程在運行
MessageBox.Show("對不起,有一進程在工作", "系統提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
}
}
|
|