Я пытаюсь выполнить следующий код.Код пытается параллельно загружать и сохранять изображения.Я передаю список изображений для скачивания.Я написал это в 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");
}
Не могли бы вы дать мне понять, с чем я сталкиваюсь?
Спасибо