Ограничить количество потоков
У меня есть список с элементами, которые я хочу скачать. Я использую для цикла, чтобы перебрать список.
Для каждого элемента в этом списке я создаю новую тему, которая ссылается на этот элемент. Моя проблема в том, что я хочу ограничить 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 с этой темой .....