2017-07-20 5 views
1

Je dois communiquer à partir d'une application Windows 10 univeral avec certains périphériques connectés via TCP/IP. Plus précisément, ce sont des appareils MODBUS et j'ai besoin de constamment interroger les appareils (plusieurs fois par seconde) afin de lire les valeurs de statut et d'agir en conséquence. L'application aura plusieurs formes et chacune de ces formes sera capable de recevoir des données basées sur les valeurs lues par les périphériques. Mon implémentation actuelle (Win32) exécute quelques threads d'arrière-plan qui envoient simplement la commande de lecture, lisent le résultat et traitent les résultats comme requis en levant des événements auxquels les différents formulaires peuvent s'abonner et je crois que c'est le approche que je devrais également prendre au sein de l'UWP.Polling TCP/IP en arrière-plan UWP

Existe-t-il un meilleur moyen d'utiliser UWP? Est-ce que cela fonctionnera si l'application est déplacée en arrière-plan et/ou puis-je empêcher la suspension?

Merci.

Répondre

2

Votre implémentation proposée semble être la meilleure approche pour une application qui doit interroger ces périphériques. Examinez le thread d'interface utilisateur et rassemblez les événements de vos pages pour collecter les données traitées. Pour exécuter en mode réduit: Si vous n'avez besoin de collecter ces informations que lorsque l'application en premier plan est en cours d'exécution, l'exécution étendue peut être l'option qui vous convient. Lorsque vous réduisez l'application, elle passe automatiquement à l'état suspendu sauf si vous demandez une forme d'extension à vie. Vous pouvez demander le Unspecified Extended Execution, qui a des limites sur l'alimentation de la batterie que ce qui peut être retiré en fonction des paramètres de l'utilisateur. Cela permettra à l'application de s'exécuter lorsqu'elle est réduite, mais pas lorsqu'elle est fermée.