Mengapa PembatalanToken terpisah dari PembatalanTokenSource?

Saya sedang mencari alasan mengapa. NET CancellationTokenstruct diperkenalkan di samping CancellationTokenSourcekelas. Saya mengerti bagaimana API akan digunakan, tetapi ingin juga memahami mengapa itu dirancang seperti itu. Yaitu, mengapa kita memiliki: var cts = new