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.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);

View file

@ -17,13 +17,18 @@ namespace MapControl
/// <summary>
/// Default StorageFolder where an IImageCache instance may save cached data.
/// </summary>
public static readonly StorageFolder DefaultCacheFolder = ApplicationData.Current.TemporaryFolder;
public static StorageFolder DefaultCacheFolder { get; } = ApplicationData.Current.TemporaryFolder;
/// <summary>
/// The IImageCache implementation used to cache tile images. The default is null.
/// </summary>
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)
{
var cacheItem = await Cache.GetAsync(cacheKey);

View file

@ -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
/// <summary>
/// Default folder path where an ObjectCache instance may save cached data.
/// </summary>
public static readonly string DefaultCacheFolder =
public static string DefaultCacheFolder { get; } =
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "MapControl", "TileCache");
/// <summary>
@ -25,6 +26,11 @@ namespace MapControl
/// </summary>
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;