任务取消时不应该取消

时间:2012-06-29 00:07:47

标签: c# .net exception-handling task-parallel-library

我正在使用c#TaskScheduler来启动某些任务,并以某种方式抛出TaskCanceledException。我一直在完成任务调用的函数,它完成得很好,根本没有抛出任何异常。我正在使用IEnumerable并在主任务函数中使用部分内容,不确定是否会导致任务问题,不会认为它会。我现在很迷茫,我没有看到我的代码有任何问题,没有什么是失败的,我可以在任务线程中看到。

我将代码简化为以下内容,但这是结构。

Action[] Jobs = new Action[] { Job1(), Job2(), etc };
Task[] Tasks = new Task[Jobs.Length];

try
{
    int I = 0;

    foreach (Action Act in Jobs)
    {
        Tasks[I] = Task.Factory.StartNew(() => Act());
        I++;
    }
    Task.WaitAll(Tasks, 300000);
}
catch (AggregateException AgEx) { throw AgEx.Flatten(); } 

我也尝试了这个并且工作正常

Thread NewJob = new Thread(() => DoJob());
NewJob.IsBackground = true;
NewJob.Start();
NewJob.Join(300000);

0 个答案:

没有答案