我有一个exe的程序在计划任务重配置定时每5分钟运行一次,但是有些程序可能在运行的过程中出错,然后就停在系统中,在任务管理器重可以看到此进程,当第2个5分钟的时候我的计划任务又启动,这时我需要判断一下如果前一个进程还在运行,我需要直接退出
如果判断该程序还在运行
if((System.Diagnostics.Process.GetProcessesByName(procName)).GetUpperBound(0) > 0)
{
MessageBox.Show("该工程已经运行!", SysInfo.GetSysInfoByXML("System_MessageCaption"), MessageBoxButtons.OK, MessageBoxIcon.Warning);
Application.Exit();
return;
}
使用using system.Threading
bool bExist;
Mutex mymutex=new Mutex(true,"OnlyRunOncetime",out bExist);
if(bExist)
{
Application.Run(new Form1());
mymutex.ReleaseMutex();
}
else
{
}
Mutex类在c#中就是负丙实现互斥运行的类,你可以使用这个类来进行判断呀,你可以再加一个定时器,让程序5分钟后会动销毁就行了呀
Process [] myProcesses;
myProcesses = Process.GetProcessesByName("运行的进程名");
if (myProcesses.Length!= 0)//说明该进程还存在