Я создал рендер в Silverlight / C #. В настоящее время я использую System.Threading.ThreadPool
, чтобы планировать рендеринг плиток параллельно. Сейчас это хорошо работает, но я бы хотел ограничить количество используемых потоков.
Поскольку это работает на Silverlight, есть несколько ограничений:
- Если я звоню
ThreadPool.SetMaxThreads
, приложение вылетает , как задокументировано .
- Нет параллельной библиотеки задач
Я вижу несколько вариантов:
- Найти пул потоков OSS / третьей стороны
- Реализация собственного пула потоков (я бы не хотел)
- Используйте Rx (что я делаю в других местах)
Существуют ли какие-либо альтернативные пулы потоков, которые работают с Silverlight?
Или кто-нибудь может придумать выражение Rx, которое порождает ограниченное количество потоков и работает с ними в очереди?