diff --git a/MapControl/Shared/TileImageLoader.cs b/MapControl/Shared/TileImageLoader.cs index dd6b1d05..615ca40d 100644 --- a/MapControl/Shared/TileImageLoader.cs +++ b/MapControl/Shared/TileImageLoader.cs @@ -149,7 +149,7 @@ namespace MapControl { if (string.IsNullOrEmpty(cacheName)) { - return LoadTile(tile, tileSource); + return LoadTile(tile, () => tileSource.LoadImageAsync(tile.XIndex, tile.Y, tile.ZoomLevel)); } var uri = tileSource.GetUri(tile.XIndex, tile.Y, tile.ZoomLevel); diff --git a/MapControl/UWP/TileImageLoader.UWP.cs b/MapControl/UWP/TileImageLoader.UWP.cs index 7d024018..cdfadc02 100644 --- a/MapControl/UWP/TileImageLoader.UWP.cs +++ b/MapControl/UWP/TileImageLoader.UWP.cs @@ -53,16 +53,11 @@ namespace MapControl if (buffer != null && buffer.Length > 0) { - await SetTileImage(tile, () => ImageLoader.LoadImageAsync(buffer)).ConfigureAwait(false); + await LoadTile(tile, () => ImageLoader.LoadImageAsync(buffer)).ConfigureAwait(false); } } - private static Task LoadTile(Tile tile, TileSource tileSource) - { - return SetTileImage(tile, () => tileSource.LoadImageAsync(tile.XIndex, tile.Y, tile.ZoomLevel)); - } - - private static async Task SetTileImage(Tile tile, Func> loadImageFunc) + private static async Task LoadTile(Tile tile, Func> loadImageFunc) { var tcs = new TaskCompletionSource(); diff --git a/MapControl/WPF/TileImageLoader.WPF.cs b/MapControl/WPF/TileImageLoader.WPF.cs index 4f883be9..52b83783 100644 --- a/MapControl/WPF/TileImageLoader.WPF.cs +++ b/MapControl/WPF/TileImageLoader.WPF.cs @@ -6,6 +6,7 @@ using System; using System.IO; using System.Runtime.Caching; using System.Threading.Tasks; +using System.Windows.Media; namespace MapControl { @@ -45,15 +46,13 @@ namespace MapControl if (buffer != null && buffer.Length > 0) { - var image = await ImageLoader.LoadImageAsync(buffer).ConfigureAwait(false); - - await tile.Image.Dispatcher.InvokeAsync(() => tile.SetImageSource(image)); + await LoadTile(tile, () => ImageLoader.LoadImageAsync(buffer)); } } - private static async Task LoadTile(Tile tile, TileSource tileSource) + private static async Task LoadTile(Tile tile, Func> loadImageFunc) { - var image = await tileSource.LoadImageAsync(tile.XIndex, tile.Y, tile.ZoomLevel).ConfigureAwait(false); + var image = await loadImageFunc().ConfigureAwait(false); await tile.Image.Dispatcher.InvokeAsync(() => tile.SetImageSource(image)); } diff --git a/MapControl/WinUI/TileImageLoader.WinUI.cs b/MapControl/WinUI/TileImageLoader.WinUI.cs index e57a5942..5f87533a 100644 --- a/MapControl/WinUI/TileImageLoader.WinUI.cs +++ b/MapControl/WinUI/TileImageLoader.WinUI.cs @@ -54,16 +54,11 @@ namespace MapControl if (buffer != null && buffer.Length > 0) { - await SetTileImage(tile, () => ImageLoader.LoadImageAsync(buffer)).ConfigureAwait(false); + await LoadTile(tile, () => ImageLoader.LoadImageAsync(buffer)).ConfigureAwait(false); } } - private static Task LoadTile(Tile tile, TileSource tileSource) - { - return SetTileImage(tile, () => tileSource.LoadImageAsync(tile.XIndex, tile.Y, tile.ZoomLevel)); - } - - private static Task SetTileImage(Tile tile, Func> loadImageFunc) + private static Task LoadTile(Tile tile, Func> loadImageFunc) { var tcs = new TaskCompletionSource();