diff --git a/MapControl/Avalonia/ImageLoader.Avalonia.cs b/MapControl/Avalonia/ImageLoader.Avalonia.cs index 9986fc1b..647f6c81 100644 --- a/MapControl/Avalonia/ImageLoader.Avalonia.cs +++ b/MapControl/Avalonia/ImageLoader.Avalonia.cs @@ -4,6 +4,7 @@ using Avalonia.Media.Imaging; using Avalonia.Platform; using System; using System.IO; +using System.Threading; using System.Threading.Tasks; namespace MapControl @@ -22,7 +23,9 @@ namespace MapControl public static Task LoadImageAsync(Stream stream) { - return Task.Run(() => LoadImage(stream)); + return Thread.CurrentThread.IsThreadPoolThread ? + Task.FromResult(LoadImage(stream)) : + Task.Run(() => LoadImage(stream)); } public static async Task LoadImageAsync(string path) diff --git a/MapControl/WPF/ImageLoader.WPF.cs b/MapControl/WPF/ImageLoader.WPF.cs index 236ed9dd..233441e3 100644 --- a/MapControl/WPF/ImageLoader.WPF.cs +++ b/MapControl/WPF/ImageLoader.WPF.cs @@ -1,5 +1,6 @@ using System; using System.IO; +using System.Threading; using System.Threading.Tasks; using System.Windows; using System.Windows.Media; @@ -29,7 +30,9 @@ namespace MapControl public static Task LoadImageAsync(Stream stream) { - return Task.Run(() => LoadImage(stream)); + return Thread.CurrentThread.IsThreadPoolThread ? + Task.FromResult(LoadImage(stream)) : + Task.Run(() => LoadImage(stream)); } public static async Task LoadImageAsync(string path)