Napisałem klasę do synchronizacji żądań, których ma być maksymalnie 240 na minutę. Proszę o sprawdzenie czy klasa jest bezpieczna dla użytku z wieloma wątkami.

sealed class RequestSynchronizer
{
    private const int MaxRequestCountPerMin = 240;
    private const int MsInMin = 60 * 1000;
    private object syncObj = new object();
    private int tickCount;
    private int requestCount;

    private bool IsFreeRequest()
    {
        lock (syncObj)
        {
            UpdateRequestCount();
            return requestCount < MaxRequestCountPerMin;
        }
    }

    private void UpdateRequestCount()
    {
        int currentTickCount = Environment.TickCount;
        if (currentTickCount - tickCount > MsInMin)
        {
            requestCount = 0;
            tickCount = currentTickCount;
        }
    }

    public void WaitUntliFreeRequest()
    {
        SpinWait wait = new SpinWait();
        while (!IsFreeRequest())
        {
            wait.SpinOnce();
        }
        Interlocked.Increment(ref requestCount);
    }
}