private static void Run <T>(IProgressable progress) where T : IProgressView { IProgressView view = new ProgressView(); view.InitProgressable(progress); view.StartShow(() => { try { Application.DoEvents(); progress.Start(); } catch (Exception e) { Console.WriteLine(e); throw; } view.EndShow(true, null); }); progress?.WorkCompleted(progress); }