using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Threading; namespace TestViewer { internal class Loading { public static event EventHandler LoadingChanged; public static void Run(Action action) { LoadingChanged?.Invoke(null, true); Task.Run(()=> { try { action(); } finally { LoadingChanged?.Invoke(null, false); } }); } } }