private void CloseFP(frmProgress fp)
 {
     if (fp.Dispatcher.Thread != System.Threading.Thread.CurrentThread)
     {
         CloseFPDelegate d = new CloseFPDelegate(CloseFP);
         fp.Dispatcher.Invoke(d, new object[] { fp });
     }
     else
     {
         fp.Close();
     }
 }