using System;
using System.Threading.Tasks;

namespace TestViewer
{
    internal class Loading
    {
        public static event EventHandler<bool>? LoadingChanged;

        public static void Run(Action action)
        {
            LoadingChanged?.Invoke(null, true);
            Task.Run(()=> 
            {
                try
                {
                    action();
                }
                finally
                {
                    LoadingChanged?.Invoke(null, false);
                }
            });
        }
    }
}