Warum ist CancellationToken von CancellationTokenSource getrennt?

Ich suche nach einer Begründung, warum .NET CancellationTokenstruct zusätzlich zum CancellationTokenSourceUnterricht eingeführt wurde. Ich verstehe, wie die API verwendet werden soll, möchte aber auch verstehen, warum sie so konzipiert ist. Dh warum haben wir: var cts = new