NotSupportedException on WaitHandle.WaitAll

Ich versuche den folgenden Code auszuführen. Der Code versucht, parallel Bilder herunterzuladen und zu speichern. Ich übergebe eine Liste der herunterzuladenden Bilder. Ich habe dies in C # 3.0 geschrieben und mit .NET Framework 4 (VS.NET Express Edition) kompiliert. Die WaitAll-Operation führt zu einemNotSupportedException (WaitAlll für mehrere Handles in einem STA-Thread wird nicht unterstützt) Jedes Mal, wenn ich versuche, mein Programm auszuführen. Ich habe versucht, @ zu entfernSetMaxThreads, aber das hat keinen Unterschied gemacht.

public static void SpawnThreads(List<string> imageList){
    imageList = new List<string>(imageList);
    ManualResetEvent[] doneEvents = new ManualResetEvent[imageList.Count];
    PicDownloader[] picDownloaders = new PicDownloader[imageList.Count];
    ThreadPool.SetMaxThreads(MaxThreadCount, MaxThreadCount);
    for (int i = 0; i < imageList.Count; i++) {
        doneEvents[i] = new ManualResetEvent(false);
        PicDownloader p = new PicDownloader(imageList[i], doneEvents[i]);
        picDownloaders[i] = p;
        ThreadPool.QueueUserWorkItem(p.DoAction);
    }
    // The following line is resulting in "NotSupportedException"     
    WaitHandle.WaitAll(doneEvents);
    Console.WriteLine("All pics downloaded");
}

Können Sie mir bitte mitteilen, auf welches Problem ich stoße?

Vielen Dan

Antworten auf die Frage(6)

Ihre Antwort auf die Frage