это тебе не волшебная палочка.
короче, есть тред, который читает файл по блокам и херачит блоки в очередь.
есть куча других тредов, которые слушают эту очередь, архивируют блоки и перегоняют в другую очередь.
и есть ещё один тред, который разбирает вторую очердь с архивированными блоками, и он записывает их в результирующий файл
и когда я делаю CancellationTokenSource.Cancel, то у меня в каждом треде делается cancellationToken.ThrowIfCancellationRequested