Мы внедряем TPL (C #) в одном из наших приложений, где мы параллельно загружаем файлы на сервер. Когда мы пытаемся загрузить 15 файлов параллельно с MaxdegreeOfParallism, установленным в 4, загружаются только 12 файлов, и три файла не загружаются. Мы изменили MaxDegreeOfParallelism на 2, после чего было загружено 14 файлов. Я не уверен, как работает MaxDegreeOfParallelism. Может ли кто-нибудь прояснить использование MaxDegreeOfParallelism и что может быть причиной отсутствия обработки файлов.
Мой код
Parallel.ForEach(fileCollection,new ParallelOptions{ MaxDegreeOfParallelism = 2 },
number => { fileNumber = UploadFile(file, response); });
Функция загрузки будет загружать файлы в AmazonS3.
Когда мы загружаем файлы с MaxDegreeOfParallelism = 1, тогда все файлы загружаются должным образом, тогда как при изменении MaxDegreeOfParallelism на 2 загружаются только 14 файлов из 15, а при изменении на 4 загружаются только 12 файлов.
Моя система разработки - четырехъядерное окно 10.