public void Do()
 {
     _box.Invoke((Action)(() =>
     {
         _box.ReportProgress(0, "started");
         _box.Show();
     }));
     try
     {
         _decoratee.Do();
     }
     finally
     {
         _box.Invoke((Action)(() =>
         {
             _box.Hide();
         }));
     }
 }