2017-07-20 11 views
1

Ich muss von einer Windows 10 universal Anwendung mit einigen per TCP/IP verbundenen Peripheriegeräten kommunizieren. Insbesondere sind dies MODBUS-Geräte, und ich muss die Geräte (mehrmals pro Sekunde) ständig abfragen, um Statuswerte zu lesen und entsprechend darauf zu reagieren. Die Anwendung wird mehrere Formulare haben und jedes dieser Formulare wird in der Lage sein, Daten basierend auf den von den Peripheriegeräten gelesenen Werten zu empfangen.Polling TCP/IP im UWP-Hintergrund

Meine aktuelle (Win32) Implementierung führt ein paar Hintergrundthreads aus, die einfach den Lesebefehl senden, das Ergebnis lesen und dann die Ergebnisse wie erforderlich verarbeiten, indem Ereignisse ausgelöst werden, die die verschiedenen Formulare abonnieren können, und ich glaube, dass dies das ist Ansatz, den ich auch innerhalb der UWP nehmen sollte.

Gibt es einen besseren Weg bei der Verwendung von UWP? Funktioniert das, wenn die Anwendung in den Hintergrund verschoben wird und/oder kann ich die Aussetzung verhindern?

Danke.

Antwort

2

Ihre vorgeschlagene Implementierung klingt nach dem besten Ansatz für eine Anwendung, die diese Geräte abfragen muss. Führen Sie die Abfrage des UI-Threads durch und ordnen Sie die Ereignisse für Ihre Seiten zu, um die verarbeiteten Daten zu erfassen.

Zum Ausführen während minimiert: Wenn Sie nur diese Informationen sammeln müssen, während die Vordergrund-App ausgeführt wird, dann kann die erweiterte Ausführung die Option für Sie sein. Wenn Sie die App minimieren, wird sie automatisch in den Status "suspended" verschoben, es sei denn, Sie fordern eine Form der lebenslangen Erweiterung an. Sie können die Unspecified Extended Execution anfordern, die bei Akkubetrieb Grenzwerte hat, die basierend auf Benutzereinstellungen entfernt werden können. Dadurch wird die App beim Minimieren, aber nicht beim Schließen aktiviert.