public async ValueTask <ThumbnailCache?> FindOneAsync(NestedPath filePath, int width, int height, ThumbnailResizeType resizeType, ThumbnailFormatType formatType) { await Task.Delay(1).ConfigureAwait(false); using (await _asyncLock.LockAsync()) { var id = new ThumbnailCacheIdEntity() { FilePath = NestedPathEntity.Import(filePath), ThumbnailWidth = width, ThumbnailHeight = height, ThumbnailResizeType = resizeType, ThumbnailFormatType = formatType, }; var storage = this.GetStorage(); var liteFileInfo = storage.FindById(id); if (liteFileInfo is null) { return(null); } using (var inStream = liteFileInfo.OpenRead()) { return(RocketMessage.FromStream <ThumbnailCache>(inStream)); } } }