如何让应用程序只有一个实例运行?

peterxia 2003-11-07 11:56:24
在.net中如何让应用程序只有一个实例运行?
...全文
47 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
神奇的章鱼哥 2003-11-07
  • 打赏
  • 举报
回复
///返回值判断是否有相同的实例
private static bool PrevInstance()
{
string procName=System.Diagnostics.Process.GetCurrentProcess().ProcessName;
if (System.Diagnostics.Process.GetProcessesByName(procName).GetUpperBound(0)>0)
{
return true;
}
else
{
return false;
}
}

然后这样调用:
if (PrevInstance())
{
Func f=new Func();
MessageBox.Show("已有一个程序的实例正在运行");
Application.Exit();
}
else
{
//执行程序
……
}
weifj 2003-11-07
  • 打赏
  • 举报
回复
可以使用互斥体Mutex类型完成此功能。见如下代码:
[STAThread]
public static void Main(string[] args)
{
//声明互斥体。
Mutex mutex = new Mutex(false, "ThisShouldOnlyRunOnce");
//判断互斥体是否使用中。
bool Running = !mutex.WaitOne(0, false);
if (! Running)
Application.Run(new FormLogin());
else
MessageBox.Show("应用程序已经启动!");
}
peterxia 2003-11-07
  • 打赏
  • 举报
回复
那位大哥帮帮忙。

110,570

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧