c#lock关键字怎么用demo
时间: 2023-08-11 20:28:33 浏览: 43
C#中的lock关键字用于在多线程并发访问共享资源时进行同步,以避免出现数据竞争和不一致的情况。下面是一个简单的使用lock的示例:
```
class Program
{
static void Main(string[] args)
{
Example example = new Example();
Thread thread1 = new Thread(() => example.DoWork());
Thread thread2 = new Thread(() => example.DoWork());
thread1.Start();
thread2.Start();
thread1.Join();
thread2.Join();
Console.ReadLine();
}
}
class Example
{
private object syncObject = new object();
private int counter = 0;
public void DoWork()
{
for (int i = 0; i < 100000; i++)
{
lock (syncObject)
{
counter++;
}
}
Console.WriteLine("Counter value: " + counter);
}
}
```
在这个例子中,我们创建了一个名为Example的类,并在其中定义了一个私有对象syncObject和一个计数器counter。在DoWork方法中,我们使用了lock关键字来锁定syncObject对象,以确保在任何时刻只有一个线程可以访问counter变量。这样可以避免出现数据竞争和不一致的情况。