SystemTrayMenu/Resources/StaticResources.cs
Peter Kirmeier 13e7cedaa6 Improve async icon loading
Response time for an loaded icon should be faster as update no longer depends on timer
Loading icon will now share image source prevents creation of lost of loading icon copies
2023-05-19 15:27:35 +02:00

39 lines
1.1 KiB
C#

// <copyright file="StaticResources.cs" company="PlaceholderCompany">
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace SystemTrayMenu.Resources
{
using System.Drawing;
using System.Windows.Media;
using SystemTrayMenu.Utilities;
internal class StaticResources
{
internal static readonly Icon LoadingIcon = Properties.Resources.Loading;
private static readonly object LoadingImgSrcLock = new ();
private static ImageSource? loadingImgSrc;
internal static ImageSource LoadingImgSrc
{
get
{
if (loadingImgSrc == null)
{
lock (LoadingImgSrcLock)
{
if (loadingImgSrc == null)
{
loadingImgSrc = Properties.Resources.Loading.ToImageSource();
loadingImgSrc.Freeze(); // Make it accessible by any thread
}
}
}
return loadingImgSrc;
}
}
}
}