如何在等待中取消任务?

如何在等待中取消任务?

我正在玩这些Windows 8 WinRT任务,我正在尝试使用下面的方法取消任务,并且它在某种程度上起作用。CancelNotification方法被调用,这使您认为任务被取消,但在后台任务继续运行,然后在完成后,任务的状态始终完成并且永远不会被取消。有没有办法在取消任务时完全停止?

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(){}


慕田峪7331174
浏览 481回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP