Ограничить количество потоков

У меня есть список с элементами, которые я хочу скачать. Я использую для цикла, чтобы перебрать список.

Для каждого элемента в этом списке я создаю новую тему, которая ссылается на этот элемент. Моя проблема в том, что я хочу ограничить maxDownload одновременно.

for (int i = downloadList.Count - 1; i >= 0; i--)
{
    downloadItem item = downloadList[i];
    if (item.Status != 1 && item.Status != 2)
    {
        ThreadStart starter = delegate { this.DownloadItem(ref item); };
        Thread t = new Thread(starter);
        t.IsBackground = true;
        t.Name = item.Name;
        t.Priority = ThreadPriority.Normal;
        t.Start();
    }
}

Я прочитал кое-что о ThreadPool, но потом не могу сослаться на свой предмет. Кто-нибудь может мне помочь? Спасибо! :)

Редактировать:

Я проверил это:

ThreadPool.SetMaxThreads(maxDownloads, maxDownloads);
ThreadPool.SetMinThreads(maxDownloads, maxDownloads);
ThreadPool.QueueUserWorkItem(DownloadItem, ref item);

Я не знаю, как я могу сослаться на свой downloadItem с этой темой .....

Ответы на вопрос(4)

Ваш ответ на вопрос