我在一个服务里创建了一个Mutex对象,
public static Mutex mutCommon = new Mutex(false,"TestMutex");然后我再运行一个winform程序创建同一个Mutex,
public static Mutex mutCommon = new Mutex(false,"TestMutex");
得到一个访问拒绝的错误.运行服务的用户是system
运行Winform的用户是administrator这个问题应该是权限的问题,不知道怎么解决,请大家帮忙,谢谢

解决方案 »

  1.   

    同名的mutex只能有一个存在。
      

  2.   

    楼上不是吧,,我现在要的是进程间保护,所以用同名的Mutex
    两个运行在同一个用户下的进程是可以的.
      

  3.   

    互斥器是一个操作系统的内核对象,不同进程中的多个线程能够访问单个互斥对象。如果创建一个和上一个同名的互斥器那么系统应该会返回一个早先创建的,而不会重新创建一个(有点类似Lazy Load)。这里产生的异常应该是上一个应用没有释放互斥器导致的。
      

  4.   

    应该不是没有释放互斥器的缘故.我把运行服务的用户改成administrator后,
    然后运行winform窗体来得到mutex,运行是正常的.没有得到访问拒绝的错误.