WP7 против PriorityThreadPool и сетевых действий - PullRequest
0 голосов
/ 07 апреля 2011

Я создаю небольшое приложение WP7, которому нужно получить доступ / обновить несколько ресурсов через Интернет.Я собираюсь создать объект PriorityThreadPool с некоторой функцией отмены, чтобы помочь мне запустить «Действие» в нескольких потоках в фоновом режиме.Что ж, пользовательская вещь загружает в приоритетном порядке то, что видит пользователь, затем загружает остальные, но если пользователь обновляет визуальное изображение, то изменяет приоритет и заставляет эти элементы отображаться выше в списке правильности пула.

Допустим, яЯ выполняю действие, отвечающее за загрузку изображения с веб-сервера, если вы попытаетесь синхронизировать вызов Async или просто оставите все как есть, учтите, что я могу выполнить 100 действий, которые загрузят 100 различных изображений.Возможно, если я не сделаю синхронизацию вызовов Отменить действие будет довольно сложно, так как все они будут работать довольно быстро в пуле потоков.Я думаю, что под капотом есть какой-то пул потоков для сетевого подключения на WP7

Любые комментарии или предложения.

1 Ответ

0 голосов
/ 07 апреля 2011

Вместо того, чтобы пытаться (пере?) Создать «PriorityThreadPool», я бы создал объект, который управляет несколькими очередями, для которых вы можете настроить приоритет по мере необходимости.
Это может затем обрабатывать каждую очередь в зависимости от приоритета.
При обработке очереди выполняйте только несколько запросов одновременно и начинайте следующий после завершения.

Вы можете выполнить обработку в ThreadPool или создать BackgroundWorker, если хотите получить больший контроль над возможностью отмены запросов.

В каждом запросе вы можете обрабатывать его как синхронную операцию, поскольку это упростит логику, но усложнит отмену.

...