Como posso cancelar o Task.WhenAll?

Atualmente, use o código a seguir para aguardar a conclusão de uma coleção de tarefas. No entanto, agora tenho uma situação em que desejo poder cancelar / abortar a chamada WhenAll, preferencialmente por meio de um token de cancelamento. Como eu faria isso?

  Dim TaskCollection As New List(Of Tasks.Task)
  For x As Integer = 1 To Threads
    Dim NewTask As Tasks.Task = TaskHandler.Delegates(DelegateKey).Invoke(Me, Proxies, TotalParams).ContinueWith(Sub() ThreadFinished())
    TaskCollection.Add(NewTask)
  Next

  Await Tasks.Task.WhenAll(TaskCollection)

Suponho que isso funcione, mas algo parecido com o próximo trecho de código, mas não tenho certeza do que seria 'XXX'.

Await Tasks.Task.WhenAny(Tasks.Task.WhenAll(TaskCollection), XXX)

questionAnswers(4)

yourAnswerToTheQuestion