diff --git a/MapControl/Shared/TileImageLoader.cs b/MapControl/Shared/TileImageLoader.cs index 46f2c181..5cce7b70 100644 --- a/MapControl/Shared/TileImageLoader.cs +++ b/MapControl/Shared/TileImageLoader.cs @@ -77,9 +77,9 @@ namespace MapControl loadFunc = tile => LoadTileImageAsync(tile, tileSource); } - var maxTasks = Math.Min(pendingTiles.Count, MaxLoadTasks); + var newTasks = Math.Min(pendingTiles.Count, MaxLoadTasks) - taskCount; - while (taskCount < maxTasks) + while (--newTasks >= 0) { Interlocked.Increment(ref taskCount); diff --git a/MapControl/WPF/XmlDocument.WPF.cs b/MapControl/WPF/XmlDocument.WPF.cs index 2750ee45..cd50e016 100644 --- a/MapControl/WPF/XmlDocument.WPF.cs +++ b/MapControl/WPF/XmlDocument.WPF.cs @@ -5,20 +5,20 @@ using System; using System.Threading.Tasks; -#pragma warning disable CS1998 // async method lacks await operators and will run synchronously - namespace MapControl { public class XmlDocument : System.Xml.XmlDocument { + public static XmlDocument LoadFromUri(Uri uri) + { + var document = new XmlDocument(); + document.Load(uri.ToString()); + return document; + } + public static Task LoadFromUriAsync(Uri uri) { - return Task.Run(async () => // without async, debugger may stop on unhandled exception from XmlDocument.Load - { - var document = new XmlDocument(); - document.Load(uri.ToString()); - return document; - }); + return Task.Run(() => LoadFromUri(uri)); } } }