diff --git a/MapControl/Shared/TileImageLoader.cs b/MapControl/Shared/TileImageLoader.cs index 986ca740..cc39ed56 100644 --- a/MapControl/Shared/TileImageLoader.cs +++ b/MapControl/Shared/TileImageLoader.cs @@ -7,7 +7,6 @@ using System.Collections.Concurrent; using System.Diagnostics; using System.IO; using System.Linq; -using System.Net; using System.Threading; using System.Threading.Tasks; #if WINDOWS_UWP @@ -73,7 +72,7 @@ namespace MapControl { pendingTiles.PushRange(tiles.Reverse().ToArray()); - while (taskCount < Math.Min(pendingTiles.Count, ServicePointManager.DefaultConnectionLimit)) + while (taskCount < Math.Min(pendingTiles.Count, DefaultConnectionLimit)) { Interlocked.Increment(ref taskCount); diff --git a/MapControl/UWP/TileImageLoader.UWP.cs b/MapControl/UWP/TileImageLoader.UWP.cs index 8d228bd8..c12be9d2 100644 --- a/MapControl/UWP/TileImageLoader.UWP.cs +++ b/MapControl/UWP/TileImageLoader.UWP.cs @@ -17,13 +17,18 @@ namespace MapControl /// /// Default StorageFolder where an IImageCache instance may save cached data. /// - public static readonly StorageFolder DefaultCacheFolder = ApplicationData.Current.TemporaryFolder; + public static StorageFolder DefaultCacheFolder { get; } = ApplicationData.Current.TemporaryFolder; /// /// The IImageCache implementation used to cache tile images. The default is null. /// public static Caching.IImageCache Cache { get; set; } + /// + /// Gets or sets the maximum number of concurrent connections. + /// + public static int DefaultConnectionLimit { get; set; } = 2; + private async Task LoadTileImageAsync(Tile tile, Uri uri, string cacheKey) { var cacheItem = await Cache.GetAsync(cacheKey); diff --git a/MapControl/WPF/TileImageLoader.WPF.cs b/MapControl/WPF/TileImageLoader.WPF.cs index 5d261664..694970e1 100644 --- a/MapControl/WPF/TileImageLoader.WPF.cs +++ b/MapControl/WPF/TileImageLoader.WPF.cs @@ -5,6 +5,7 @@ using System; using System.Diagnostics; using System.IO; +using System.Net; using System.Runtime.Caching; using System.Text; using System.Threading.Tasks; @@ -17,7 +18,7 @@ namespace MapControl /// /// Default folder path where an ObjectCache instance may save cached data. /// - public static readonly string DefaultCacheFolder = + public static string DefaultCacheFolder { get; } = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "MapControl", "TileCache"); /// @@ -25,6 +26,11 @@ namespace MapControl /// public static ObjectCache Cache { get; set; } = MemoryCache.Default; + private static int DefaultConnectionLimit + { + get { return ServicePointManager.DefaultConnectionLimit; } + } + private async Task LoadTileImageAsync(Tile tile, Uri uri, string cacheKey) { DateTime expiration;