/// <summary>
 /// Adds to the the access count and limit used.
 /// </summary>
 /// <param name="additionalAccessCount">The additional number of access counts.</param>
 /// <param name="additionalLimitUsed">The additional amount towards the associated limit that has been used.</param>
 public void AddUsage(long additionalAccessCount, double additionalLimitUsed)
 {
     if (_bottleneck.Automatic)
     {
         throw new InvalidOperationException("SetUsage cannot be used on Automatic bottlenecks!");
     }
     System.Threading.Interlocked.Add(ref _accessCount, additionalAccessCount);
     InterlockedExtensions.TryOptomisticAdd(ref _limitUsed, additionalLimitUsed);
     UpdateUtilization();
 }