C# 在当前布局中对任务和cancellationtoken调用Dispose()

C# 在当前布局中对任务和cancellationtoken调用Dispose(),c#,multithreading,c#-4.0,task,cancellation-token,C#,Multithreading,C# 4.0,Task,Cancellation Token,我有下面的代码,我试图弄清楚是否可以显式地调用任务和cancellationtoken上的dispose。我读到微软建议在任务上调用dispose,除非你必须做一些奇怪的事情才能调用它。我也很感激有更好的方法,但我很想知道目前的设置是否可行 public void UpdateSProcList(CancellationToken cancelTask) { Task parentTask = Task.Factory.StartNew(() =>

我有下面的代码,我试图弄清楚是否可以显式地调用任务和cancellationtoken上的dispose。我读到微软建议在任务上调用dispose,除非你必须做一些奇怪的事情才能调用它。我也很感激有更好的方法,但我很想知道目前的设置是否可行

    public void UpdateSProcList(CancellationToken cancelTask)
    {
        Task parentTask = Task.Factory.StartNew(() => 
            {
                //Call the handling method.
                ChildTaskSync(cancelTask);
            });
    }

    public void ChildTaskSync(CancellationToken cancelTask)
    {
        SProcInformationEventArgs sProcListRetrieval = new SProcInformationEventArgs();

        //Check for cancellation.
        if(!cancelTask.IsCancellationRequested)
        {
            try
            {
                ObtainSProcList(sProcListRetrieval);
            }
            catch (AggregateException AEx)
            {
                if (AEx.InnerException is OperationCanceledException) 
                {
                    ....
                }
            }
            finally
            {
                //Call method to raise event.
                OnVerificationCompleted(this, sProcListRetrieval);
            }
        }
        else
        {
            sProcListRetrieval.CarriedOutToCompletion = false;
            OnVerificationCompleted(this, sProcListRetrieval);
        }
    }
第一种方法允许GUI线程返回并继续更新UI。第二个方法检索存储过程列表

谢谢您的时间。

可能的副本