Изменение размера изображений на Windows Phone 7 в потоке пула потоков?

Я пишу приложение для Windows Phone 7, которое работает с большим количеством изображений - эти изображения могут варьироваться от нескольких сотен пикселей до 1080P (в будущем возможно больше).

Изображения очень ресурсоемкие, поэтому я ' я пошел по пути кэширования + изменения размера изображений на телефоне перед их отображением.

Это означает, что при первой настройке после того, как пользователь ввел IP-адрес хранилища изображений, я могу попросить их подождать несколько минут, пока все это получено / изменено / кэшировано. С этого момента они могут иметь хорошую и быструю производительность.

В настоящий момент мой менеджер кеша отслеживает изображения по словарю Ури и местоположениям файлов. У меня есть очередь, которая обрабатывает до 5 изображений за раз (асинхронные веб-запросы, изменение размера частично выполняется в потоке пула потоков).

У меня проблема в том, что класс WritableBitmap в Silverlight является элементом пользовательского интерфейса, то есть у меня есть для перехода к потоку пользовательского интерфейса через Диспетчер, чтобы выполнить фактическое изменение размера, что глупо и замедляет все это - это также означает, что мой диспетчер кэша фактически однопоточный.

Итак, он идет Менеджер кеша (пул потоков) -> Асинхронный веб-запрос (пул потоков) -> Обратный вызов (пул потоков) -> Изменение размера (поток пользовательского интерфейса) -> Пометка задания кеширования как завершенного (пул потоков).

Я искал стороннюю библиотеку, которая будет A) компилировать и запускать на Windows Phone 7 и B) иметь возможность изменять размер изображений различных форматов, манипулируя потоком или байтовым массивом, и не зависеть от потока пользовательского интерфейса. .

Кто-нибудь хоть раз сталкивался с этим?

Ура,

Тайлер

19
задан Tyler 12 March 2011 в 06:25
поделиться