2016-01-06 6 views
2

У меня есть приложение WinRT (Windows 8.1 и Windows Phone 8.1). Я использую BackgroundDownloader для загрузки файлов в группы.BackgroundDownloader и «Можно настроить только до 50 групп»

Я использую группы для загрузки аудиокниг, поэтому весь трек аудиокниги загружается в одну группу и может быть отменен сразу. Загрузка в каждую группу загружается последовательно (не параллельно), поэтому пользователь может начать прослушивание аудиокниги с самого начала.

Я использую такой код, чтобы создать загрузки:

var downloader = new BackgroundDownloader 
{ 
    TransferGroup = BackgroundTransferGroup.CreateGroup(groupKey), 
}; 

var download = downloader.CreateDownload(source, destinationFile); 

download.TransferGroup.TransferBehavior = BackgroundTransferBehavior.Serialized; 

Проблема заключается в том, что когда пользователь инициирует более 50 загрузки,

download.TransferGroup.TransferBehavior = BackgroundTransferBehavior.Serialized; 

строка кода выдает Only up to 50 groups can be configured исключение ,

Исключение, возможно ограничение BackgroundDownloader (без информации об этом на MSDN, конечно) было бы неплохо, если бы было ограничено иметь 50 загружаемых групп загрузки.

Проблема заключается в том, что исключение также возникает при завершении загрузки.

Пример: пользователь инициирует 49 загрузок, все результаты успешно завершены. Затем пользователь запускает еще 1 загрузку, все в порядке. Затем пользователь запускает еще 1 загрузку и генерирует это исключение. Хотя уже не существует 50 загружаемых групп. С момента создания приложения было создано всего 50 групп загрузки.

Есть ли способ «удалить» группы, когда они закончены? Должен ли я иметь дело с группами после их загрузки вручную? Является ли ошибка WinRT (я не удивлюсь)?

ответ

0

В настоящее время я не знаю, как удалить законченный BackgroundTransferGroup. Кроме того, как он говорит на MSDN (https://msdn.microsoft.com/en-us/library/windows/apps/windows.networking.backgroundtransfer.backgroundtransfergroup.aspx):

для Windows 8.1 и Windows Server 2012 R2 поддерживает максимум 50 уникальных групп передачи для всей системы. Поэтому приложение должно повторно использовать уникальный идентификатор или небольшое количество уникальных идентификаторов для всех групп передачи, созданных приложением. Если в системе создано более 50 групп переноса, приложение будет находиться в состоянии, не подлежащем восстановлению.

Хотя MS не ограничивает количество групп для одного приложения (за пределами системного предела), это означает, что нужно быть осторожным в отношении того, сколько групп они создают, и найти приемлемый механизм для их повторного использования.

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

+0

это отстой. Одна группа или группа не приемлема для меня из-за использования аудиокниги. Сценарий для использования. Reuse groups действительно запрашивает проблемы. –

+1

. Повторное использование групп (отслеживание имен ваших групп) - единственное доступное решение в данный момент. – kiewic

 Смежные вопросы

  • Нет связанных вопросов^_^