C#中如何判断系统中程序在运行?
C#中如何判断系统中程序在运行?比如我打开一个我写的程序,不是从VS中打开,是从debug下打开,再打开一个相同的程序,现在就有两个程序在运行,甚至打开更多的!比如这样的...
C#中如何判断系统中程序在运行?
比如我打开一个我写的程序,不是从VS中打开,是从debug下打开,再打开一个相同的程序,现在就有两个程序在运行,甚至打开更多的!比如这样的!
如何让打开一个程序后,判断下,如果在打开程序已经在运行了就不允许再打开第二个相同的程序? 展开
比如我打开一个我写的程序,不是从VS中打开,是从debug下打开,再打开一个相同的程序,现在就有两个程序在运行,甚至打开更多的!比如这样的!
如何让打开一个程序后,判断下,如果在打开程序已经在运行了就不允许再打开第二个相同的程序? 展开
4个回答
展开全部
使用互斥对象即可
class Test
{
/// <summary>
/// 应用程式的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
bool flag=false;
System.Threading.Mutex mutex=new System.Threading.Mutex(true,"Test",out flag);
//第一个参数:true--给调用执行绪赋予互斥体的初始所属权
//第一个参数:互斥体的名称
//第三个参数:返回值,如果调用执行绪已被授予互斥体的初始所属权,则返回true
if(flag)
{
Console.Write("Running");
}
else
{
Console.Write("Another is Running");
System.Threading.Thread.Sleep(5000);//执行绪挂起5秒钟
//请勿使用this.close(); 会有错误发生
Environment.Exit(1);//退出程式
}
Console.ReadLine();
}
运行结果:
第一次运行,输出"Running"。
不关闭第一次运行的程式, 进行第二次运行,输出"Another is Running",五秒钟後,程式自动退出。
class Test
{
/// <summary>
/// 应用程式的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
bool flag=false;
System.Threading.Mutex mutex=new System.Threading.Mutex(true,"Test",out flag);
//第一个参数:true--给调用执行绪赋予互斥体的初始所属权
//第一个参数:互斥体的名称
//第三个参数:返回值,如果调用执行绪已被授予互斥体的初始所属权,则返回true
if(flag)
{
Console.Write("Running");
}
else
{
Console.Write("Another is Running");
System.Threading.Thread.Sleep(5000);//执行绪挂起5秒钟
//请勿使用this.close(); 会有错误发生
Environment.Exit(1);//退出程式
}
Console.ReadLine();
}
运行结果:
第一次运行,输出"Running"。
不关闭第一次运行的程式, 进行第二次运行,输出"Another is Running",五秒钟後,程式自动退出。
追问
已经解决了!我写的也是互诉不过是判断下就行了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
设计模式中有个单件模式,就是专门用于解决你这个问题的
http://baike.baidu.com/view/3745751.htm 这里有一个用c#编写的程序,你仔细看看能满足你的需求
写的时候只要保证你的 Main所在类 是一个单件就ok了。
http://baike.baidu.com/view/3745751.htm 这里有一个用c#编写的程序,你仔细看看能满足你的需求
写的时候只要保证你的 Main所在类 是一个单件就ok了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先查询进程列表,看是否存在你要运行的程序,
if (true){
不启动
}else{
application.run(new xxx())
}
if (true){
不启动
}else{
application.run(new xxx())
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以检测一下,在进程里判断一下那个程序或者进程是否存在,如果存在不运行就好了
追问
我问的就是如何去检测现在进程中那些程序在运行?
不过我用互诉解决了这个问题!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询