Minor cleanup in TileImageLoader

This commit is contained in:
ClemensF 2020-09-24 23:33:23 +02:00
parent fa5368e77a
commit ee4f049334
5 changed files with 15 additions and 13 deletions

View file

@ -208,7 +208,7 @@ namespace MapControl
Children.Add(tile.Image);
}
TileImageLoader.LoadTilesAsync(Tiles, TileSource, SourceName);
TileImageLoader.LoadTiles(Tiles, TileSource, SourceName);
}
protected override Size MeasureOverride(Size availableSize)

View file

@ -19,7 +19,7 @@ namespace MapControl
{
public interface ITileImageLoader
{
void LoadTilesAsync(IEnumerable<Tile> tiles, TileSource tileSource, string sourceName);
void LoadTiles(IEnumerable<Tile> tiles, TileSource tileSource, string sourceName);
}
public abstract class MapTileLayerBase : Panel, IMapLayer

View file

@ -37,7 +37,7 @@ namespace MapControl
public static string CacheKeyFormat { get; set; } = "{0}/{1}/{2}/{3}{4}";
public class TileQueue : ConcurrentStack<Tile>
private class TileQueue : ConcurrentStack<Tile>
{
public void Enqueue(IEnumerable<Tile> tiles)
{
@ -58,10 +58,10 @@ namespace MapControl
/// Loads all pending tiles from the tiles collection.
/// If tileSource.UriFormat starts with "http" and sourceName is a non-empty string,
/// tile images will be cached in the TileImageLoader's Cache (if it's not null).
/// The method is async void because it implements void ITileImageLoader.LoadTilesAsync
/// The method is async void because it implements void ITileImageLoader.LoadTiles
/// and is not awaited when it is called in MapTileLayer.UpdateTiles().
/// </summary>
public async void LoadTilesAsync(IEnumerable<Tile> tiles, TileSource tileSource, string sourceName)
public async void LoadTiles(IEnumerable<Tile> tiles, TileSource tileSource, string sourceName)
{
tileQueue.Clear();

View file

@ -186,7 +186,7 @@ namespace MapControl
}
}
TileImageLoader.LoadTilesAsync(tiles, tileSource, sourceName);
TileImageLoader.LoadTiles(tiles, tileSource, sourceName);
}
private async void OnLoaded(object sender, RoutedEventArgs e)

View file

@ -56,7 +56,9 @@ namespace MapControl
if (buffer != null && buffer.Length > 0)
{
SetTileImageAsync(tile, await ImageLoader.LoadImageAsync(buffer).ConfigureAwait(false));
var image = await ImageLoader.LoadImageAsync(buffer).ConfigureAwait(false);
SetTileImage(tile, image);
}
}
@ -64,16 +66,16 @@ namespace MapControl
{
var image = await tileSource.LoadImageAsync(tile.XIndex, tile.Y, tile.ZoomLevel).ConfigureAwait(false);
if (image != null)
{
SetTileImageAsync(tile, image);
}
SetTileImage(tile, image);
}
private static void SetTileImageAsync(Tile tile, ImageSource image)
private static void SetTileImage(Tile tile, ImageSource image)
{
if (image != null)
{
tile.Image.Dispatcher.InvokeAsync(() => tile.SetImage(image));
}
}
private static Task<ImageCacheItem> GetCacheAsync(string cacheKey)
{