mirror of
https://github.com/ClemensFischer/XAML-Map-Control.git
synced 2026-04-20 22:05:07 +00:00
Update TileImageLoader.cs
This commit is contained in:
parent
3cdbbe1e13
commit
6a4a784f32
1 changed files with 6 additions and 5 deletions
|
|
@ -56,9 +56,12 @@ namespace MapControl
|
||||||
/// If tileSource.UriFormat starts with "http" and tileCacheName is a non-empty string,
|
/// If tileSource.UriFormat starts with "http" and tileCacheName is a non-empty string,
|
||||||
/// tile images will be cached in the TileImageLoader's Cache (if that is not null).
|
/// tile images will be cached in the TileImageLoader's Cache (if that is not null).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public async Task LoadTiles(IEnumerable<Tile> tiles, TileSource tileSource, string cacheName)
|
public Task LoadTiles(IEnumerable<Tile> tiles, TileSource tileSource, string cacheName)
|
||||||
{
|
{
|
||||||
|
var tasks = new List<Task>();
|
||||||
|
|
||||||
tileQueue.Clear();
|
tileQueue.Clear();
|
||||||
|
|
||||||
TileSource = tileSource;
|
TileSource = tileSource;
|
||||||
tiles = tiles.Where(tile => tile.Pending);
|
tiles = tiles.Where(tile => tile.Pending);
|
||||||
|
|
||||||
|
|
@ -75,17 +78,15 @@ namespace MapControl
|
||||||
tileQueue.Enqueue(tile);
|
tileQueue.Enqueue(tile);
|
||||||
}
|
}
|
||||||
|
|
||||||
var tasks = new List<Task>();
|
|
||||||
|
|
||||||
while (taskCount < Math.Min(tileQueue.Count, MaxLoadTasks))
|
while (taskCount < Math.Min(tileQueue.Count, MaxLoadTasks))
|
||||||
{
|
{
|
||||||
Interlocked.Increment(ref taskCount);
|
Interlocked.Increment(ref taskCount);
|
||||||
|
|
||||||
tasks.Add(LoadTilesFromQueueAsync(tileSource, cacheName));
|
tasks.Add(LoadTilesFromQueueAsync(tileSource, cacheName));
|
||||||
}
|
}
|
||||||
|
|
||||||
await Task.WhenAll(tasks);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return tasks.Count > 0 ? Task.WhenAll(tasks) : Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task LoadTilesFromQueueAsync(TileSource tileSource, string cacheName)
|
private async Task LoadTilesFromQueueAsync(TileSource tileSource, string cacheName)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue