public bool TryStartOperation(CancellationToken userCancellationToken, out CancellationToken linkedCancellationToken)
{
linkedCancellationToken = CancellationToken.None;
ThrowIfDisposed();
lock (_thisLock)
{
int operationsOutstanding = ++_operationsOutstanding;
if (operationsOutstanding == 1)
{
linkedCancellationToken = CreateLinkedCancellationToken(userCancellationToken);
return true;
}
Debug.Assert(operationsOutstanding >= 1, "'operationsOutstanding' must never be smaller than 1.");
return false;
}
}