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