Lock
System.Threading.Lock появился в .NET 9. using с EnterScope занимает и освобождает блокировку. lock на Lock в C# 13 делает то же. Не берите lock на this, строках и Type.
Синтаксис
using (gate.EnterScope()) { }
Пример
Давайте займём блок через EnterScope:
using System;
using System.Threading;
class Program
{
static void Main()
{
var gate = new Lock();
using (gate.EnterScope())
{
Console.WriteLine("abcde");
}
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте сравним с lock:
using System;
using System.Threading;
class Program
{
static void Main()
{
var gate = new Lock();
lock (gate)
{
Console.WriteLine("12345");
}
}
}
Результат выполнения кода:
"12345"
Смотрите также
-
Monitor,
Enter и Exit -
Enter,
захват объекта -
SemaphoreSlim,
счётчик допусков -
ReaderWriterLockSlim,
читатели и писатель