黑马程序员技术交流社区

标题: C#窗体只运行一个exe文件 [打印本页]

作者: V_John    时间: 2013-10-26 00:29
标题: C#窗体只运行一个exe文件
有时候程序只需要运行一个程序,不想出现第二个怎么办?这就需要特别处理下
  如果是WPF,就需要在public MainWindow()方法里面添加这么一句
  string procName = System.Diagnostics.Process.GetCurrentProcess().ProcessName;//得到.csproj的实例名
            if ((System.Diagnostics.Process.GetProcessesByName(procName)).GetUpperBound(0) > 0)
            {
                System.Windows.Forms.MessageBox.Show("程序已经运行!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                //System.Windows.Forms.Application.Exit();//Winform是这么用的
    this.Close();
                return;
            }
这样程序在先运行的时候,要检查一下,看看是不是还有一个程序运行,如果运行了就关闭它,然后突出关闭它
作者: pm324    时间: 2013-10-29 22:30
有一种东西叫做互斥体。
有一个DotNet类叫做Mutex
作者: V_John    时间: 2013-10-31 19:46
pm324 发表于 2013-10-29 22:30
有一种东西叫做互斥体。
有一个DotNet类叫做Mutex

Mutex类?是什么动动?
作者: 许庭洲    时间: 2013-10-31 20:34
V_John 发表于 2013-10-31 19:46
Mutex类?是什么动动?

1. Mutex是一个令牌;
2. 当一个线程拿到这个令牌时运行,另外想拿到令牌的线程就必须等待;
3. 直到拿到令牌的线程释放令牌;
4. 没有所有权的线程是无法释放令牌的。
作者: 追影    时间: 2013-11-1 07:15
许庭洲 发表于 2013-10-31 20:34
1. Mutex是一个令牌;
2. 当一个线程拿到这个令牌时运行,另外想拿到令牌的线程就必须等待;
3. 直到拿到令 ...

学习了,支持一下




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2