0

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

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

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);
4

0 回答 0