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

  • 相关阅读:
    织梦网站底部的Power by DedeCms怎么去掉?
    在线文档预览
    Hyper-v网络配置
    office web apps部署(二)
    iOS 学习资料整理
    office web apps部署(一)
    cdr格式文件抠图
    iframe载入等待
    Vcl.FileCtrl.SelectDirectory
    Function Pointer in Delpni
  • 原文地址:https://www.cnblogs.com/jaxu/p/1450083.html
Copyright © 2011-2022 走看看