C#线程同步
时间: 2023-06-28 14:15:07 浏览: 139
深入分析C# 线程同步
C#中的线程同步可以使用以下几种方式:
1. lock关键字
使用`lock`关键字可以保证同一时间只有一个线程可以访问被锁定的代码块。例如:
```
private object lockObj = new object();
public void Method()
{
lock (lockObj)
{
// 被锁定的代码块
}
}
```
2. Monitor类
`Monitor`类提供了`Enter`和`Exit`方法来实现线程同步。例如:
```
private object lockObj = new object();
public void Method()
{
Monitor.Enter(lockObj);
try
{
// 被锁定的代码块
}
finally
{
Monitor.Exit(lockObj);
}
}
```
3. Mutex类
`Mutex`类是一种可命名的互斥锁,可以在不同进程间进行同步。例如:
```
private static Mutex mutex = new Mutex();
public void Method()
{
mutex.WaitOne();
try
{
// 被锁定的代码块
}
finally
{
mutex.ReleaseMutex();
}
}
```
以上三种方式都可以实现线程同步,但是要注意避免死锁和竞态条件等问题。
阅读全文