Fix the symbol cache and image cache
This commit is contained in:
@@ -57,6 +57,7 @@ namespace PortfolioManager.Cache
|
||||
{
|
||||
lock (thisLock)
|
||||
{
|
||||
DisposeBitmaps();
|
||||
imageCache = new Dictionary<ImageType, Bitmap>();
|
||||
}
|
||||
}
|
||||
@@ -66,22 +67,30 @@ namespace PortfolioManager.Cache
|
||||
lock (thisLock)
|
||||
{
|
||||
if (null == imageCacheInstance) return;
|
||||
List<Bitmap> bitmaps = imageCache.Values.ToList();
|
||||
foreach (Bitmap bitmap in bitmaps)
|
||||
{
|
||||
bitmap.Dispose();
|
||||
}
|
||||
DisposeBitmaps();
|
||||
imageCache = null;
|
||||
imageCacheInstance = null;
|
||||
}
|
||||
}
|
||||
|
||||
public IImage GetImage(ImageCache.ImageType imageType)
|
||||
|
||||
private void DisposeBitmaps()
|
||||
{
|
||||
lock(this)
|
||||
if(null == imageCache)return;
|
||||
List<Bitmap> bitmaps = imageCache.Values.ToList();
|
||||
foreach (Bitmap bitmap in bitmaps)
|
||||
{
|
||||
return imageCache[imageType];
|
||||
bitmap.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public IImage GetImage(ImageType imageType)
|
||||
{
|
||||
lock(thisLock)
|
||||
{
|
||||
if (imageCache == null)throw new ObjectDisposedException(nameof(ImageCache));
|
||||
if (!imageCache.TryGetValue(imageType, out var bitmap))throw new KeyNotFoundException($"Image {imageType} not found in cache.");
|
||||
return bitmap;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user