mirror of
https://github.com/ClemensFischer/XAML-Map-Control.git
synced 2026-01-03 15:20:22 +01:00
Version 1.11.3: Added support for TimeSpan.Zero in TileImageLoader.CacheUpdateAge, removed DispatcherPriority in Invoke/BeginInvoke calls.
This commit is contained in:
parent
37789eb96c
commit
5fa34c194f
|
|
@ -8,8 +8,8 @@ using System.Runtime.InteropServices;
|
|||
[assembly: AssemblyCompany("Clemens Fischer")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2014 Clemens Fischer")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyVersion("1.11.2")]
|
||||
[assembly: AssemblyFileVersion("1.11.2")]
|
||||
[assembly: AssemblyVersion("1.11.3")]
|
||||
[assembly: AssemblyFileVersion("1.11.3")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
[assembly: ComVisible(false)]
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@ using System.Runtime.InteropServices;
|
|||
[assembly: AssemblyCompany("Clemens Fischer")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2014 Clemens Fischer")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyVersion("1.11.2")]
|
||||
[assembly: AssemblyFileVersion("1.11.2")]
|
||||
[assembly: AssemblyVersion("1.11.3")]
|
||||
[assembly: AssemblyFileVersion("1.11.3")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
[assembly: ComVisible(false)]
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@ using System.Windows;
|
|||
[assembly: AssemblyCompany("Clemens Fischer")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2014 Clemens Fischer")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyVersion("1.11.2")]
|
||||
[assembly: AssemblyFileVersion("1.11.2")]
|
||||
[assembly: AssemblyVersion("1.11.3")]
|
||||
[assembly: AssemblyFileVersion("1.11.3")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
[assembly: ComVisible(false)]
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@ namespace MapControl
|
|||
/// The time interval after which a cached image is updated and rewritten to the cache.
|
||||
/// The default value is one day. This time interval should not be greater than the value
|
||||
/// of the CacheExpiration property.
|
||||
/// If CacheUpdateAge is less than or equal to TimeSpan.Zero, cached images are never updated.
|
||||
/// </summary>
|
||||
public static TimeSpan CacheUpdateAge { get; set; }
|
||||
|
||||
|
|
@ -98,7 +99,7 @@ namespace MapControl
|
|||
|
||||
foreach (var tile in tiles)
|
||||
{
|
||||
dispatcher.BeginInvoke(setImageAction, DispatcherPriority.Render, tile, imageTileSource);
|
||||
dispatcher.BeginInvoke(setImageAction, tile, imageTileSource);
|
||||
}
|
||||
|
||||
return;
|
||||
|
|
@ -114,7 +115,7 @@ namespace MapControl
|
|||
|
||||
foreach (var tile in tiles)
|
||||
{
|
||||
dispatcher.BeginInvoke(setImageAction, DispatcherPriority.Render, tile, tileSource);
|
||||
dispatcher.BeginInvoke(setImageAction, tile, tileSource);
|
||||
}
|
||||
|
||||
return;
|
||||
|
|
@ -130,23 +131,19 @@ namespace MapControl
|
|||
var buffer = Cache.Get(key) as byte[];
|
||||
var image = CreateImage(buffer);
|
||||
|
||||
if (image != null)
|
||||
if (image == null)
|
||||
{
|
||||
var creationTime = BitConverter.ToInt64(buffer, 0);
|
||||
|
||||
if (DateTime.FromBinary(creationTime) + CacheUpdateAge < DateTime.UtcNow)
|
||||
{
|
||||
dispatcher.Invoke(setImageAction, DispatcherPriority.Render, tile, image); // synchronously before enqueuing
|
||||
outdatedTiles.Add(tile); // update outdated cache
|
||||
}
|
||||
else
|
||||
{
|
||||
dispatcher.BeginInvoke(setImageAction, DispatcherPriority.Render, tile, image);
|
||||
}
|
||||
pendingTiles.Enqueue(tile); // not yet cached
|
||||
}
|
||||
else if (CacheUpdateAge > TimeSpan.Zero &&
|
||||
DateTime.FromBinary(BitConverter.ToInt64(buffer, 0)) + CacheUpdateAge < DateTime.UtcNow)
|
||||
{
|
||||
dispatcher.Invoke(setImageAction, tile, image); // synchronously before enqueuing
|
||||
outdatedTiles.Add(tile); // update outdated cache
|
||||
}
|
||||
else
|
||||
{
|
||||
pendingTiles.Enqueue(tile); // not yet cached
|
||||
dispatcher.BeginInvoke(setImageAction, tile, image);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -202,7 +199,7 @@ namespace MapControl
|
|||
|
||||
if (image != null || !tile.HasImageSource) // do not set null if tile already has an image (from cache)
|
||||
{
|
||||
dispatcher.BeginInvoke(setImageAction, DispatcherPriority.Render, tile, image);
|
||||
dispatcher.BeginInvoke(setImageAction, tile, image);
|
||||
}
|
||||
|
||||
if (buffer != null && image != null)
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@ using System.Runtime.InteropServices;
|
|||
[assembly: AssemblyCompany("Clemens Fischer")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2014 Clemens Fischer")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyVersion("1.11.2")]
|
||||
[assembly: AssemblyFileVersion("1.11.2")]
|
||||
[assembly: AssemblyVersion("1.11.3")]
|
||||
[assembly: AssemblyFileVersion("1.11.3")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
[assembly: ComVisible(false)]
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@ using System.Runtime.InteropServices;
|
|||
[assembly: AssemblyCompany("Clemens Fischer")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2014 Clemens Fischer")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyVersion("1.11.2")]
|
||||
[assembly: AssemblyFileVersion("1.11.2")]
|
||||
[assembly: AssemblyVersion("1.11.3")]
|
||||
[assembly: AssemblyFileVersion("1.11.3")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
[assembly: ComVisible(false)]
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@ using System.Runtime.InteropServices;
|
|||
[assembly: AssemblyCompany("Clemens Fischer")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2014 Clemens Fischer")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyVersion("1.11.2")]
|
||||
[assembly: AssemblyFileVersion("1.11.2")]
|
||||
[assembly: AssemblyVersion("1.11.3")]
|
||||
[assembly: AssemblyFileVersion("1.11.3")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
[assembly: ComVisible(false)]
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@ using System.Runtime.InteropServices;
|
|||
[assembly: AssemblyCompany("Clemens Fischer")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2014 Clemens Fischer")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyVersion("1.11.2")]
|
||||
[assembly: AssemblyFileVersion("1.11.2")]
|
||||
[assembly: AssemblyVersion("1.11.3")]
|
||||
[assembly: AssemblyFileVersion("1.11.3")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
[assembly: ComVisible(false)]
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@ using System.Runtime.InteropServices;
|
|||
[assembly: AssemblyCompany("Clemens Fischer")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2014 Clemens Fischer")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyVersion("1.11.2")]
|
||||
[assembly: AssemblyFileVersion("1.11.2")]
|
||||
[assembly: AssemblyVersion("1.11.3")]
|
||||
[assembly: AssemblyFileVersion("1.11.3")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
[assembly: ComVisible(false)]
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@ using System.Runtime.InteropServices;
|
|||
[assembly: AssemblyCompany("Clemens Fischer")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2014 Clemens Fischer")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyVersion("1.11.2")]
|
||||
[assembly: AssemblyFileVersion("1.11.2")]
|
||||
[assembly: AssemblyVersion("1.11.3")]
|
||||
[assembly: AssemblyFileVersion("1.11.3")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
[assembly: ComVisible(false)]
|
||||
|
|
|
|||
Loading…
Reference in a new issue