C# Mutex 实现单例程序 (单线程)
C#中Mutex是互斥锁,位于System.Threading 命名空间中。互斥锁是一种互斥的同步对象,意味着同一时间有且仅有一个线程。Mutex适用于一个共享资源每次只能被一个线程访问的情况,也就是控制多个线程相互之间的联系,不产生冲突和重复。
Mutex构造函数,第一个参数决定是否当前线程获取即将创建的Mutex的所有权,第二个参数是互斥变量名(也就是Mutex的名字),第三个是新创建true,还是已存在false。 需要注意的是Mutex对象即使不是新创建的,也需要进行释放,否则下一次获取都是返回已存在
例子:
当Mutex被创建的时候,当前的线程相当于被锁住,如果尝试再打开程序(另一个线程),就会相斥。