Jak anulować zadanie w oczekiwaniu?

Gram z tymi zadaniami WinRT systemu Windows 8 i próbuję anulować zadanie przy użyciu poniższej metody i działa do pewnego stopnia. Wywoływana jest metoda CancelNotification DOES, która sprawia, że ​​uważasz, że zadanie zostało anulowane, ale w tle zadanie jest uruchomione, a po jego zakończeniu status zadania jest zawsze zakończony i nigdy nie jest anulowany. Czy istnieje sposób, aby całkowicie zatrzymać zadanie, gdy zostanie anulowane?

<code>private async void TryTask()
{
    CancellationTokenSource source = new CancellationTokenSource();
    source.Token.Register(CancelNotification);
    source.CancelAfter(TimeSpan.FromSeconds(1));
    var task = Task<int>.Factory.StartNew(() => slowFunc(1, 2), source.Token);

    await task;            

    if (task.IsCompleted)
    {
        MessageDialog md = new MessageDialog(task.Result.ToString());
        await md.ShowAsync();
    }
    else
    {
        MessageDialog md = new MessageDialog("Uncompleted");
        await md.ShowAsync();
    }
}

private int slowFunc(int a, int b)
{
    string someString = string.Empty;
    for (int i = 0; i < 200000; i++)
    {
        someString += "a";
    }

    return a + b;
}

private void CancelNotification()
{
}
</code>

questionAnswers(4)

yourAnswerToTheQuestion