//private readonly StripedAsyncLock<string> _lock = null;
        //private static SemaphoreSlim _lock = new SemaphoreSlim(1, 1);

        public ImageCachingMiddleware(RequestDelegate next, IOptions <ImageCachingOptions> optionsAccessor, ILogger <ImageCachingMiddleware> logger)
        {
            _next = next;
            _imageCachingOptions = optionsAccessor.Value;
            //_lock = new StripedAsyncLock<string>(stripes: _imageCachingOptions.MaxStripesForLockAsync);
            _logger = logger;
        }
        public ImageCachingMiddleware(
            RequestDelegate next,
            IOptions <ImageCachingOptions> options,
            ILogger <ImageCachingMiddleware> logger)
        {
            _next    = next;
            _options = options.Value;
            _logger  = logger;

            _memoryCache ??= new MemoryCache(new MemoryCacheOptions
            {
                SizeLimit = _options.MaxCacheItems,
            });
        }