Contagem de threads limite

Eu tenho uma lista com itens que eu quero baixar. Eu uso um loop for para iterar a lista.

Para cada item nesta lista, inicio um novo segmento que faz referência ao item. Meu problema é que eu quero limitar o maxDownload ao mesmo tempo.

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();
    }
}

Li algo sobre o ThreadPool, mas não consigo fazer referência ao meu item. Alguém pode me ajudar? Obrigado! :)

Editar:

Eu testei isso:

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

Não sei como posso referenciar meu downloadItem com este tópico .....

questionAnswers(4)

yourAnswerToTheQuestion