public void chiusoSnapshotPubblicoWindow(object sender, EventArgs e) { _snapshotPubblicoWindow.Closed -= chiusoSnapshotPubblicoWindow; _snapshotPubblicoWindow = null; // Se ho aperto lo ss, lo riporto in primo piano. if (_slideShowWindow != null) { _slideShowWindow.Topmost = true; } FormuleMagiche.attendiGcFinalizers(); }
public void Execute(object parameter) { try { _giornale.Debug("Eseguo RelayCommad: " + _execute.Method.ToString() + " parametro=" + parameter); esegui(parameter); if (_afterExecute != null) { _giornale.Debug("RelayCommad invoco after execute"); _afterExecute.Invoke(parameter); } _giornale.Debug("Esecuzione RelayCommad completata: " + _execute.Method.ToString() + " parametro=" + parameter); } catch (OutOfMemoryException ofm) { long memoryPrima = Process.GetCurrentProcess().WorkingSet64; FormuleMagiche.attendiGcFinalizers(); long memoryDopo = Process.GetCurrentProcess().WorkingSet64; _giornale.Error("finita la memoria: prima=" + memoryPrima + " dopo=" + memoryDopo); if (_execute.Target is ViewModelBase) { ViewModelBase viewModel = _execute.Target as ViewModelBase; if (viewModel.dialogProvider != null) { viewModel.dialogProvider.ShowError(ofm.GetType().Name + "\n" + ErroriUtil.estraiMessage(ofm), "Errore imprevisto.", null); } } } catch (Exception ee) { _giornale.Error(_execute.Method.ToString(), ee); if (_execute.Target is ViewModelBase) { ViewModelBase viewModel = _execute.Target as ViewModelBase; if (viewModel.dialogProvider != null) { viewModel.dialogProvider.ShowError(ee.GetType().Name + "\n" + ErroriUtil.estraiMessage(ee), "Errore imprevisto. Consultare il Log", null); } } // per ora non voglio far spaccare il programma altrimenti perdo il lavoro in corso. // anche se concettualmente sarebbe più corretto rilanciare l'errore. // L'unico problema è che non c'è modo di fare un try-catch di un Command. // throw ee; } }
public void chiusoPubblicoWindow(object sender, EventArgs e) { if (_pubblicoWindow != null) { _pubblicoWindow.Closed -= chiusoPubblicoWindow; _pubblicoWindow = null; } if (!azioneInCorso) { stavaGirandoPubblico = false; } FormuleMagiche.attendiGcFinalizers(); }