采用线程互斥锁Mutex,在winform程序的主入口点中加入如下代码,将程序改为单实例运行。
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
bool isRuned;
Mutex mtx = new Mutex(true, "OnlyRunOneInstance", out isRuned);
if (isRuned)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new FormMain());
mtx.ReleaseMutex();
}
else
{
DataManagerMessageBox.ShowWarning("程序已启动!请勿重复启动程序!");
}
}
}