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); } }); } } }