c# mutex怎么使用
时间: 2024-09-30 19:11:19 浏览: 34
C#使用Mutex简单实现程序单实例运行的方法
在C#中,Mutex(互斥量)是一个用于控制对共享资源独占访问的对象。它是.NET框架中的一种同步机制,主要用于防止多个线程同时访问同一段代码或资源。以下是使用Mutex的基本步骤:
1. 创建Mutex实例:
```csharp
using System.Threading;
Mutex mutex = new Mutex(false, "YourMutexName"); // 参数一表示是否自动创建(false表示创建失败则返回False),参数二是互斥量名称,全局唯一
```
2. 获取或等待锁(AcquireMutex):
- 获取锁(非阻塞):
```csharp
bool result = mutex.TryWaitOne(); // 如果其他线程拥有该锁,此方法将立即返回false,否则获得锁并返回true
```
- 等待锁(阻塞):
```csharp
mutex.WaitOne(); // 如果其他线程拥有锁,当前线程将挂起直到锁可用
```
3. 使用锁执行受保护的操作:
```csharp
try
{
// 在这里编写需要互斥执行的代码
}
finally
{
// 当完成操作后,释放锁
mutex.ReleaseMutex();
}
```
4. 销毁Mutex(可选):
```csharp
mutex.Close(); // 如果不再需要,应手动关闭Mutex,以防资源泄漏
```
阅读全文