private bool ThreadSafeCancelCancellationTokenSource()
{
if (this.CanAbort && this.cancellationTokenSource != null && !this.cancellationTokenSource.IsCancellationRequested)
{
lock (this.locker)
{
if (this.CanAbort && this.cancellationTokenSource != null && !this.cancellationTokenSource.IsCancellationRequested)
{
this.cancellationTokenSource.Cancel();
return true;
}
}
}
return false;
}