Limit Anzahl der Threads

Ich habe eine Liste mit Elementen, die ich herunterladen möchte. Ich benutze eine for-Schleife, um die Liste zu durchlaufen.

Für jedes Element in dieser Liste starte ich einen neuen Thread, der auf das Element verweist. Mein Problem ist, dass ich gleichzeitig den maxDownload begrenzen möchte.

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

Ich habe etwas über den ThreadPool gelesen, kann dann aber nicht auf meinen Artikel verweisen. Kann mir jemand helfen? Vielen Dank! :)

Bearbeiten

Ich habe das getestet:

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

Ich weiß nicht, wie ich mit diesem Thread auf mein downloadItem verweisen kann .....

Antworten auf die Frage(8)

Ihre Antwort auf die Frage