私の現在のプロジェクトは .net 2.0 スレッドを使用しており、1. ファイル ダウンロード スレッドと 2. ファイル処理スレッドをスケジュールするためのマスター スレッドがあります。並列処理するスレッドの最大数を 16 などに制限できます (10 個のファイルのダウンロードと、既にダウンロードされたファイルの 6 個のファイル処理が可能です)。TPL を使用してコードを移行したいと考えています。
Thread workerThread = null;
switch (Status)
{
case StatusEnum.FileWatchLocked:
workerThread = new Thread(workflowMgr.GetFiles);
break;
case FPFStatusEnum.ProcessLocked:
workerThread = new Thread(workflowMgr.ProcessFiles);
break;
}
lock (_threadCountMonitor)
{
_workFlowPool.Add(workerThread, workflowMgr);
_workFlowThreadIDPool.Add(workerThread.ManagedThreadId, workerThread);
workerThread.Start();
++_threadCount;
}
タスクが完了したかどうかを追跡する必要があり、さらに作業をキューに入れることができます。また、getfile と processfile の TPL を実装する必要があります。TPL からの最良のアプローチは何でしょうか?