Version 4.1.

This commit is contained in:
ClemensF 2017-09-05 23:59:22 +02:00
parent 526384170c
commit 61d06b4924
3 changed files with 14 additions and 4 deletions

View file

@ -7,7 +7,6 @@ using System.Collections.Concurrent;
using System.Diagnostics; using System.Diagnostics;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Net;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
#if WINDOWS_UWP #if WINDOWS_UWP
@ -73,7 +72,7 @@ namespace MapControl
{ {
pendingTiles.PushRange(tiles.Reverse().ToArray()); pendingTiles.PushRange(tiles.Reverse().ToArray());
while (taskCount < Math.Min(pendingTiles.Count, ServicePointManager.DefaultConnectionLimit)) while (taskCount < Math.Min(pendingTiles.Count, DefaultConnectionLimit))
{ {
Interlocked.Increment(ref taskCount); Interlocked.Increment(ref taskCount);

View file

@ -17,13 +17,18 @@ namespace MapControl
/// <summary> /// <summary>
/// Default StorageFolder where an IImageCache instance may save cached data. /// Default StorageFolder where an IImageCache instance may save cached data.
/// </summary> /// </summary>
public static readonly StorageFolder DefaultCacheFolder = ApplicationData.Current.TemporaryFolder; public static StorageFolder DefaultCacheFolder { get; } = ApplicationData.Current.TemporaryFolder;
/// <summary> /// <summary>
/// The IImageCache implementation used to cache tile images. The default is null. /// The IImageCache implementation used to cache tile images. The default is null.
/// </summary> /// </summary>
public static Caching.IImageCache Cache { get; set; } public static Caching.IImageCache Cache { get; set; }
/// <summary>
/// Gets or sets the maximum number of concurrent connections.
/// </summary>
public static int DefaultConnectionLimit { get; set; } = 2;
private async Task LoadTileImageAsync(Tile tile, Uri uri, string cacheKey) private async Task LoadTileImageAsync(Tile tile, Uri uri, string cacheKey)
{ {
var cacheItem = await Cache.GetAsync(cacheKey); var cacheItem = await Cache.GetAsync(cacheKey);

View file

@ -5,6 +5,7 @@
using System; using System;
using System.Diagnostics; using System.Diagnostics;
using System.IO; using System.IO;
using System.Net;
using System.Runtime.Caching; using System.Runtime.Caching;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -17,7 +18,7 @@ namespace MapControl
/// <summary> /// <summary>
/// Default folder path where an ObjectCache instance may save cached data. /// Default folder path where an ObjectCache instance may save cached data.
/// </summary> /// </summary>
public static readonly string DefaultCacheFolder = public static string DefaultCacheFolder { get; } =
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "MapControl", "TileCache"); Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "MapControl", "TileCache");
/// <summary> /// <summary>
@ -25,6 +26,11 @@ namespace MapControl
/// </summary> /// </summary>
public static ObjectCache Cache { get; set; } = MemoryCache.Default; 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) private async Task LoadTileImageAsync(Tile tile, Uri uri, string cacheKey)
{ {
DateTime expiration; DateTime expiration;