From 12d13465e989e2430f54033cca1bca95342d2059 Mon Sep 17 00:00:00 2001 From: ClemensFischer Date: Tue, 19 Aug 2025 10:25:24 +0200 Subject: [PATCH] Update TileImageLoader.cs --- MapControl/Shared/TileImageLoader.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/MapControl/Shared/TileImageLoader.cs b/MapControl/Shared/TileImageLoader.cs index 57eb2ce0..15e0ac93 100644 --- a/MapControl/Shared/TileImageLoader.cs +++ b/MapControl/Shared/TileImageLoader.cs @@ -69,7 +69,7 @@ namespace MapControl private static ILogger logger; private static ILogger Logger => logger ?? (logger = ImageLoader.LoggerFactory?.CreateLogger()); - private ConcurrentStack pendingTiles; + private ConcurrentStack pendingTiles = new ConcurrentStack(); /// /// Loads all pending tiles from the tiles collection. Tile image caching is enabled when the Cache @@ -77,7 +77,11 @@ namespace MapControl /// public async Task LoadTilesAsync(IEnumerable tiles, TileSource tileSource, string cacheName, IProgress progress) { - pendingTiles?.Clear(); + if (!pendingTiles.IsEmpty) + { + pendingTiles.Clear(); + progress?.Report(1d); + } if (tileSource != null && tiles != null && (tiles = tiles.Where(tile => tile.IsPending)).Any()) { @@ -104,8 +108,6 @@ namespace MapControl { tile.IsPending = false; - progress?.Report((double)(tileCount - tileStack.Count) / tileCount); - try { await LoadTileImage(tile, tileSource, cacheName).ConfigureAwait(false); @@ -114,6 +116,8 @@ namespace MapControl { Logger?.LogError(ex, "Failed loading tile image {zoom}/{column}/{row}", tile.ZoomLevel, tile.Column, tile.Row); } + + progress?.Report((double)(tileCount - tileStack.Count) / tileCount); } }