• C# WINFORM判断程序是否运行,且只能运行一个实例


    判断程序是否已经运行,使程序只能运行一个实例有很多方法,下面记录两种,

    方法1:线程互斥

        static class Program
    {
    private static System.Threading.Mutex mutex;

    /// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]
    static void Main()
    {
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);

    mutex = new System.Threading.Mutex(true, "OnlyRun");
    if (mutex.WaitOne(0, false))
    {
    Application.Run(new MainForm());
    }
    else
    {
    MessageBox.Show("程序已经在运行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
    Application.Exit();
    }
    }
    }

    方法2:

    这种检测进程的名的方法,并不绝对有效。因为打开第一个实例后,将运行文件改名后,还是可以运行第二个实例。

        static class Program
    {
    /// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]
    static void Main()
    {
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);

    // get the name of our process
    string p = System.Diagnostics.Process.GetCurrentProcess().ProcessName;
    // get the list of all processes by that name
    System.Diagnostics.Process[] processes = System.Diagnostics.Process.GetProcessesByName(p);
    // if there is more than one process
    if (processes.Length > 1)
    {
    MessageBox.Show("程序已经在运行中", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
    Application.Exit();
    }
    else
    {
    Application.Run(new MainForm());
    }
    }
    }
  • 相关阅读:
    Python基础 面向对象的基本概念
    C#版菜谱
    Ember源码学习
    AutoFac文档
    NewLife.Xcode组件资源目录
    Go语言
    调试Razor从哪里开始
    搭建一个高并发低时延系统
    ASP.NET MVC以ModelValidator为核心的Model验证体系: ModelValidatorProvider
    2012百度之星资格赛试题与AC代码合集
  • 原文地址:https://www.cnblogs.com/JuneZhang/p/2412121.html
Copyright © 2020-2023  润新知