zoukankan      html  css  js  c++  java
  • 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());
    }
    }
    }
  • 相关阅读:
    安卓性能优化总结
    Splash广告界面
    安卓实现版本升级
    Kotlint集合简单总结
    Kotlin在处理GET和POST请求的数据问题
    udp 局域网群聊
    java 网络编程
    关于软件工程的课程建议
    结对编程--四则运算
    简单的结对代码练习
  • 原文地址:https://www.cnblogs.com/JuneZhang/p/2412121.html
Copyright © 2011-2022 走看看