zoukankan      html  css  js  c++  java
  • 小文——在C# WinForm中如何使当前应用程序只允许启动一个实例

        我们在创建C# WinForm应用程序时,有时需要限制用户在同一时间只允许启动一个应用程序实例,例如安装程序包、系统扫描工具等等。当应用程序的一个实例已经处于运行状态时,如果用户企图再启动一个实例,则给用户一个提示并终止该实例。

        这个其实很简单!我们知道,WinForm应用程序都有一个程序运行时的入口点,这点与WebForm应用程序不同,后者需要在任意一个可访问的Page中设置允许用户访问的权限,而WinForm应用程序只需要处理好程序的入口点就可以了。因此我们需要在Program class的Main函数中进行判断和处理。代码如下: 

    [STAThread]
    static void Main()
    {
        
    bool createNew;
        
    using (System.Threading.Mutex m = new System.Threading.Mutex(true, Application.ProductName, out createNew))
        {
            
    if (createNew)
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(
    false);
                Application.Run(
    new Form1());
            }
            
    else
            {
                MessageBox.Show(
    "Only one instance of this application is allowed!");
            }
        }
    }

        主要使用了Sytem.Theading.Mutex对象,该对象用于解决多线程操作中的互斥问题,有关它的详细介绍读者可以参考MSDN。

    http://msdn.microsoft.com/zh-cn/library/bwe34f1k(VS.80).aspx

  • 相关阅读:
    instruments 内存泄漏
    ios常用数学函数
    正则表达式
    view设置成圆角
    关于新浪微博注销后自动登录的问题
    根据视频地址获取某一帧的图像
    使用DES加解密
    实现通讯录的查询与删除
    iOS 动画效果
    iOS 文字下划线
  • 原文地址:https://www.cnblogs.com/jaxu/p/1450083.html
Copyright © 2011-2022 走看看