11.5.9

Anonymous
csharp
03/14/2023 9:14 AM
680 B
14
Indexable
using System.Threading;

public class CustomMonitor
{
    private readonly object _lock = new object();
    private bool _isLocked;

    public void Enter()
    {
        lock (_lock)
        {
            while (_isLocked)
            {
                Monitor.Wait(_lock);
            }
            _isLocked = true;
        }
    }

    public void Exit()
    {
        lock (_lock)
        {
            _isLocked = false;
            Monitor.PulseAll(_lock);
        }
    }
}
Editor is loading...