На данный момент у меня есть список объектов Job, которые помещаются в очередь для последующей обработки последовательно в приведенном ниже коде.список процессов в разных тонах
List<Job> jobList = jobQueue.GetJobsWithStatus(Status.New);
foreach (Job job in jobList)
{
job.Process();
}
Я заинтересован в запуске нескольких Рабочих мест одновременно в ограниченном количестве потоков (скажем, 5 потоков).
Каков наилучший способ сделать это в C#?
Дополнительные примечания:
- объект А Работа не совместно использовать ресурсы с другими заданиями.
- Каждая работа занимает около 10 секунд до процесса.
- Каждое задание может подключаться к различным ресурсам.
Обновление: Я использовал семафор, потому что не может ограничить количество активных потоков с ThreadPool.
Очень интересно Сид, На данный момент я использую Visual Studio 2008 с .NET 3.5. К сожалению, я не думаю, что смогу использовать 4.0 на живых серверах, пока не станет Gold. –
Понятно, я все еще придерживался .NET 2.0 :( –