C# 在当前布局中对任务和cancellationtoken调用Dispose()
我有下面的代码,我试图弄清楚是否可以显式地调用任务和cancellationtoken上的dispose。我读到微软建议在任务上调用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(() =>
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。第二个方法检索存储过程列表
谢谢您的时间。可能的副本