Сообщение Task Parallel Library от 30.01.2017 13:40
Изменено 30.01.2017 18:40 AndrewVK
Task Parallel Library
Начал изучать task'и и буквально сразу возник вопрос как ограничить их одновременное количество. Есть ли какой-нибудь штатный способ? Или хотя-бы рекомендуемый лучшими Net'оводами?
Перефразирую в виде задачи — есть большое количество элементов, над которыми надо выполнить параллельную работу, но если просто запустить её сразу для всех — кончается память. Хотелось бы скормить все элементы и просто дождаться завершения. В идеале с возможностью добавления новых элементов в очередь с ожиданием.
В принципе можно и самому написать, но если есть готовое протестированное решение — было бы приятно.
PS. Можно ли жёстко прервать задачу? (т.е. не через Cancellation token)
Перефразирую в виде задачи — есть большое количество элементов, над которыми надо выполнить параллельную работу, но если просто запустить её сразу для всех — кончается память. Хотелось бы скормить все элементы и просто дождаться завершения. В идеале с возможностью добавления новых элементов в очередь с ожиданием.
В принципе можно и самому написать, но если есть готовое протестированное решение — было бы приятно.
PS. Можно ли жёстко прервать задачу? (т.е. не через Cancellation token)
Task Parallel Library
Начал изучать task'и и буквально сразу возник вопрос как ограничить их одновременное количество. Есть ли какой-нибудь штатный способ? Или хотя-бы рекомендуемый лучшими Net'оводами?
Перефразирую в виде задачи — есть большое количество элементов, над которыми надо выполнить параллельную работу, но если просто запустить её сразу для всех — кончается память. Хотелось бы скормить все элементы и просто дождаться завершения. В идеале с возможностью добавления новых элементов в очередь с ожиданием.
В принципе можно и самому написать, но если есть готовое протестированное решение — было бы приятно.
PS. Можно ли жёстко прервать задачу? (т.е. не через Cancellation token)
Перефразирую в виде задачи — есть большое количество элементов, над которыми надо выполнить параллельную работу, но если просто запустить её сразу для всех — кончается память. Хотелось бы скормить все элементы и просто дождаться завершения. В идеале с возможностью добавления новых элементов в очередь с ожиданием.
В принципе можно и самому написать, но если есть готовое протестированное решение — было бы приятно.
PS. Можно ли жёстко прервать задачу? (т.е. не через Cancellation token)