当前位置:编程学习 > C#/ASP.NET >>

C#开发智能设备应用程序 怎样使同一个程序只能打开一次

如题 --------------------编程问答-------------------- 请看单例模式

程序打开时,先判断是否存在一个单例对象,如果存在,则已经打开过,如果不存在,先创建该单例,然后打开 --------------------编程问答-------------------- 智能设备上没有Mutex类吗?

using System;
using System.Threading;

class App
{
    static void Main()
    {
        bool bRun = false;

        Mutex mutex = new Mutex(true, "AppApp", out bRun);

        if (bRun)
        {
            Console.Write("第一次运行");
        }
        else
        {
            Console.Write("已经运行");
        }
 
        Console.ReadKey();
    }
}



--------------------编程问答-------------------- 智能设备的Mutex不同没有out
--------------------编程问答-------------------- 怎么判断单例对象
--------------------编程问答-------------------- 没有Mutex类,那总该有下面两个API吧

[DllImport("kernel32.dll")]
static extern IntPtr CreateMutex(IntPtr lpMutexAttributes, bool bInitialOwner,
  string lpName);

[DllImport("kernel32.dll")]
static extern IntPtr OpenMutex(uint dwDesiredAccess, bool bInheritHandle,
  string lpName); --------------------编程问答-------------------- 项目里没有“生成单个实例应用程序”的选项吗 --------------------编程问答--------------------
引用 6 楼  的回复:
项目里没有“生成单个实例应用程序”的选项吗



--------------------编程问答-------------------- 这两个有然后该怎么写呢
--------------------编程问答-------------------- 然后到百度(别去google)去查询这两个API的使用方法
当然最好到cnblogs上查询,直接有C#的代码


--------------------编程问答-------------------- 许多优秀的开源服务软件,使用一个只有1字节的文件来为进程加锁。而不是用特殊的api。 --------------------编程问答--------------------
引用 10 楼  的回复:
许多优秀的开源服务软件,使用一个只有1字节的文件来为进程加锁。而不是用特殊的api。


这样不会有问题吗?
--------------------编程问答--------------------
引用 11 楼  的回复:
引用 10 楼  的回复:

许多优秀的开源服务软件,使用一个只有1字节的文件来为进程加锁。而不是用特殊的api。


这样不会有问题吗?


我好像有几次
需要手工删除.lock文件才能再次运行


补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,