Update TileImageLoader.cs

This commit is contained in:
ClemensFischer 2025-08-26 11:40:20 +02:00
parent d4119395c5
commit 575f372a80

View file

@ -71,6 +71,7 @@ namespace MapControl
public static int MaxLoadTasks { get; set; } = 4; public static int MaxLoadTasks { get; set; } = 4;
private readonly Queue<Tile> tileQueue = new Queue<Tile>(); private readonly Queue<Tile> tileQueue = new Queue<Tile>();
private int tileCount;
private int taskCount; private int taskCount;
/// <summary> /// <summary>
@ -93,7 +94,8 @@ namespace MapControl
tileQueue.Enqueue(tile); tileQueue.Enqueue(tile);
} }
var tileCount = tileQueue.Count; tileCount = tileQueue.Count;
var maxTasks = Math.Min(tileCount, MaxLoadTasks); var maxTasks = Math.Min(tileCount, MaxLoadTasks);
while (taskCount < maxTasks) while (taskCount < maxTasks)
@ -101,7 +103,7 @@ namespace MapControl
taskCount++; taskCount++;
Logger?.LogDebug("Task count: {count}", taskCount); Logger?.LogDebug("Task count: {count}", taskCount);
_ = Task.Run(async () => await LoadTilesFromStack(tileSource, cacheName, tileCount, progress).ConfigureAwait(false)); _ = Task.Run(async () => await LoadTilesFromStack(tileSource, cacheName, progress).ConfigureAwait(false));
} }
} }
} }
@ -111,10 +113,11 @@ namespace MapControl
lock (tileQueue) lock (tileQueue)
{ {
tileQueue.Clear(); tileQueue.Clear();
tileCount = 0;
} }
} }
private async Task LoadTilesFromStack(TileSource tileSource, string cacheName, int tileCount, IProgress<double> progress) private async Task LoadTilesFromStack(TileSource tileSource, string cacheName, IProgress<double> progress)
{ {
while (true) while (true)
{ {