怎样保证任意时刻只有我的一个程序实例在运行?

cacaca6 2006-03-16 02:39:37
可能说得不太明白

是这样,假如我有个C#程序,xxx.exe 运行了,然后同时再次运行(鼠标双击)又会产生一个新的实例运行。我现在就想在任意时刻只有我这个程序一个实例运行,该怎么做,在Form_Load()里该加个什么样的判断?

多谢了
...全文
87 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
達魔 2006-03-16
  • 打赏
  • 举报
回复
楼上正解……
顶……
zlz_212 2006-03-16
  • 打赏
  • 举报
回复

using System;
using System.Windows.Forms;
using System.Diagnostics;
public class ProTest
{
private void MainWindow_Load(object sender, System.EventArgs e)
{

Process[] processes=Process.GetProcessesByName("MYEXENAME");
if( processes != null)
{
if( (processes.Length)== 2) //第2个进程
{
processes[1].CloseMainWindow();

}
}
}



[STAThread]
static void Main(string[] args)
{
//保证该程序只有一个在运行
bool createdNew;
System.Threading.Mutex mutex_Application = new System.Threading.Mutex(true,"test",out createdNew);
if (!createdNew)
{
MessageBox.Show("本程序只允许同时运行一个!");
return;
}

Application.Run();

}
}
fanruinet 2006-03-16
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/TopicView.asp?id=4421726

111,125

社区成员

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

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

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