C#中Mutex是互斥锁,位于System.Threading 命名空间中。
顾名思义,它是一个互斥的对象,同一时间只有一个线程可以拥有它,该类还可用于进程间同步的同步基元。
如果当前有一个线程拥有它,在没有释放之前,其它线程是没有权利拥有它的。我们可以把Mutex看作洗手间,上厕所的人看作线程;上厕所的人先进洗手间,拥有使用权,上完厕所之后出来,把洗手间释放,其他人才可以使用。
线程使用Mutex.WaitOne()方法等待C# Mutex对象被释放,如果它等待的C# Mutex对象被释放了,它就自动拥有这个对象,直到它调用Mutex.ReleaseMutex()方法释放这个对象,而在此期间,其他想要获取这个C# Mutex对象的线程都只有等待。
我们可以利用这个特性来控制一个应用程序只能运行一个实例。其他实例由于得不到这个Mutex而不能运行。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
<

本文详细介绍了C#中的Mutex互斥锁概念及其在System.Threading命名空间的应用。通过一个示例程序展示了如何使用Mutex来确保同一时间内仅有一个实例运行,并解释了Mutex.WaitOne()和Mutex.ReleaseMutex()的方法作用。
最低0.47元/天 解锁文章
1373

被折叠的 条评论
为什么被折叠?



