public void Cancel()
{
if (CanCancel == false) {
throw new InvalidOperationException();
}
CancelCore();
_canceled = true;
_completed = true;
if (_completedHandler != null) {
_completedHandler(this, EventArgs.Empty);
}
RaisePropertyChanged("IsCanceled", "CanCancel", "IsCompleted");
}