C#窗体程序仅允许启动一次的解决方法

发布时间:2020-04-09编辑:脚本学堂
C#窗体程序仅允许启动一次的解决方法,这个很有必要的,特别是在服务器上。

C#窗体程序仅允许启动一次的解决方法,这个很有必要的,特别是在服务器上。
我们就遇到过这样的情况,两个终端登录,结果导致打开两个c#程序,而这个又是伪造数据的小工具,后果可想而知了。

实现方法:
在程序的main函数中加入:
 

复制代码 代码示例:
bool createdNew;
System.Threading.Mutex instance = new System.Threading.Mutex(true, "MutexName", out createdNew);
if (createdNew)
{
Application.Run(new LoginForm());
instance.ReleaseMutex();
}
else
{
Application.Exit();
}

也可以这样写,一个窗体只能启动一次:
 

复制代码 代码示例:
Form1 a = new Form1();
bool createdNew;
System.Threading.Mutex instance = new System.Threading.Mutex(true, "MutexName", out createdNew);
if (createdNew)
{
a.ShowDialog();
instance.ReleaseMutex();
}
else
{
a.Close();
}