private void Copy(CancellationToken cancellationToken) { RemainingTimeCalculator.Start(); OnModelProgressMaxChanged(this, EventArgs.Empty); OnModelProgressValueChanged(this, EventArgs.Empty); Model.SizeChanged += OnModelProgressMaxChanged; Model.ProgressChanged += OnModelProgressValueChanged; Model.CopyPaused += OnModelCopyPaused; TaskIsRunning = true; try { Model.Copy(TargetPath, SelectedOverwriteOption, cancellationToken); } catch (Exception ex) { UIServices.ShowMessageBox(ex.Message, "Error", Buttons.OK, Icon.Error); } TaskIsRunning = false; Model.CopyPaused -= OnModelCopyPaused; Model.ProgressChanged -= OnModelProgressValueChanged; Model.SizeChanged -= OnModelProgressMaxChanged; }