我目前的项目正在使用 .net 2.0 线程,并且有一个用于调度 1.File 下载线程和 2.File Processing Thread 的主线程。我可以限制并行处理的最大线程数,例如 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 的最佳方法是什么?