我正在使用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);