NotSupportedException on WaitHandle.WaitAll

Я пытаюсь выполнить следующий код. Код пытается параллельно загружать и сохранять изображения. Я передаю список изображений для скачивания. Я написал это в C # 3.0 и скомпилировал его, используя .NET Framework 4 (VS.NET Express Edition). Операция WaitAll приводит кNotSupportedException (WaitAlll для нескольких дескрипторов в потоке STA не поддерживается) каждый раз, когда я пытаюсь запустить мою программу. Я пытался удалитьSetMaxThreads, но это не имело никакого значения.

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

Можете ли вы дать мне понять, с чем я сталкиваюсь?

Спасибо

Ответы на вопрос(3)

Ваш ответ на вопрос