void p_EndProgress(object sender, Framework.EventArguments.ProgressEventArgs e) { _context.Send(new SendOrPostCallback(delegate(object state) { if (_frmDlg != null) { _frmDlg.EndProgress(sender, e); if (_frmDlg._progressStack.Count == 0) { _frmDlg.Dispose(); _frmDlg = null; } } }), null); }