private void operation_Finished(object sender, EventArgs e) { var operation = (OperationBase)sender; CleanAfterOperation(operation); WpfUtilities.ThreadSafeInvoke(() => Finished.Add(operation)); }
public static void FadeOut() { windowStackIndex--; if (windowStackIndex == 0) { WpfUtilities.ThreadSafeInvoke(() => Application.Current.MainWindow.Opacity = 1); } }
public static void FadeIn() { if (windowStackIndex == 0) { WpfUtilities.ThreadSafeInvoke(() => Application.Current.MainWindow.Opacity = 0.7); } windowStackIndex++; }
private void CleanAfterOperation(OperationBase operation) { operation.Finished -= operation_Finished; if (operation.IsComplexOperation) { operation.Progressed -= operation_Progressed; } WpfUtilities.ThreadSafeInvoke(() => Pending.Remove(operation)); CheckOngoingOperations(); }