Question

D'après la page 20 de Introduction aux tâches en arrière-plan, sous Contraintes de ressources réseau, la tâche en arrière-plan peut télécharger 4,69 Mo toutes les 15 minutes.

Cela signifie-t-il que, sous Windows RT, si nous téléchargeons un fichier de 20 Mo via le métro IE10 en arrière-plan, cela prendrait plus de 40 minutes ?(sinon il faut garder la progression du téléchargement devant)

De plus, en tant qu'application en arrière-plan, vous n'êtes pas autorisé à utiliser plus de 0,002 % du processeur.

Sur la même page, ils l'ont argumenté comme :

L'utilisation du réseau peut représenter une consommation importante sur la batterie d'un appareil et est donc également limitée lors de l'exécution des tâches en arrière-plan.Toutefois, si un appareil fonctionne sur secteur, les tâches en arrière-plan ne sont pas limitées au réseau.Ils sont libres d’utiliser autant de bande passante réseau qu’ils en ont besoin (dépendant, bien sûr, de toute bande passante ou contrainte d’utilisation spécifique à l’opérateur).Notez que l'utilisation du processeur pour une tâche en arrière-plan est toujours limitée en ressources, même si l'appareil fonctionne sur secteur.

Pour ces mêmes raisons, nous ne pouvons pas implémenter un gestionnaire de téléchargement pour Windows RT ?Que diriez-vous avec le consentement de l'utilisateur ?

Était-ce utile?

La solution

Il existe des API de déchargement des téléchargements pour la gestion en arrière-plan par le système :voir l'entrée du blog de Mike Taulty à ce sujet.Il existe d'autres restrictions sérieuses sur les applications WinRT en mode arrière-plan qui ne sont généralement pas abordées dans les articles de blog et les forums, comme le fait que votre tâche en arrière-plan s'exécute dans un processus ou un appartement de threads distinct de celui de votre application :dans le livre blanc lié à ci-dessus, voir la section sur Exécutable hôte de tâche en arrière-plan.Il indique qu'à moins que votre tâche en arrière-plan ne soit PushNotificationTrigger ou ControlChannelTrigger, votre tâche est un serveur inproc exécuté par BackgroundTaskHost.exe ou WWAHost.exe.Même dans les deux premiers cas où il fonctionne « dans la même application », il se trouve dans un appartement séparé.Tous ces éléments ne peuvent partager des données qu'avec l'application principale en les marshalant dans des fichiers ou dans le stockage ApplicationData.

J'ai expérimenté ControlChannelTrigger et j'ai trouvé les limitations suivantes (également répertoriées dans la documentation si vous les extrayez) :

  • Le canal doit être associé à la prise avant que la prise soit connectée
  • Une application ne peut utiliser qu'un nombre limité de ControlChannels, même lorsque les canaux logiciels sont spécifiés (6 dans mon cas)

Autres conseils

Autant que je puisse dire à partir du document lié, vous êtes limité à une quantité de débit de données dans les tâches de base qui sont basées sur la quantité d'énergie utilisée pour alimenter le périphérique réseau non par une valeur spécifique des données.Les 4,69 Mo n'étaient qu'un exemple donné pour 10 Mbps, ce qui est plus lent que la plupart des connexions Internet résidentielles standard.

Également comme le paragraphe que vous avez lié les États, il n'y a pas de restrictions si l'appareil est connecté à l'alimentation secteur, les ordinateurs de bureau et la plupart des ordinateurs portables n'auront jamais de problème.Il n'y a aucune indication que vous pouvez demander à l'utilisateur de contourner les restrictions.

Alors oui, vous pouvez créer un gestionnaire de téléchargement et cela devrait fonctionner correctement aussi longtemps que vous êtes au courant de l'endroit et comment l'utilisateur utilise l'application et ajusté en conséquence.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top