1

私の現在のプロジェクトは .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 からの最良のアプローチは何でしょうか?

4

1 に答える 1