Учитывая, что CancellationToken является структурой, если я передаю ее экземпляр методу по значению, он не должен быть изменен вызывающим объектом. Итак, если я передаю CancellationToken (по значению), то я вызываю cts.Cancel(), как метод, имеющий копию этого токена, уведомляется об этом его отменили? Разве это не должно работать только при передаче по ссылке?
Например:
public static void Main()
{
var cts = new CancellationTokenSource();
SomeCancellableOperation(cts.Token);
cts.Cancel();
}
public void SomeCancellableOperation(CancellationToken token)
{
...
token.ThrowIfCancellationRequested();
...
}
Подробнее здесь: https://stackoverflow.com/questions/481 ... it-updated