private CancellationToken CreateLinkedCancellationToken(CancellationToken cancellationToken)
{
CancellationTokenSource linkedCancellationTokenSource;
if (cancellationToken == CancellationToken.None)
{
linkedCancellationTokenSource = new CancellationTokenSource();
}
else
{
linkedCancellationTokenSource = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken,
new CancellationTokenSource().Token);
}
Debug.Assert(_cancellationTokenSource == null, "'_cancellationTokenSource' MUST be NULL.");
_cancellationTokenSource = linkedCancellationTokenSource;
return linkedCancellationTokenSource.Token;
}