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 .....