Hintergrund-timer zu aktualisieren, UI?
Ich hab ein kleines problem mit meiner Anwendung.
Ich möchte update etwas auf meine Benutzeroberfläche alle 10 Sekunden. Ich zum ersten mal eine DispatcherTimer
für diese, aber es blockiert mein UI für eine kurze Zeit, weil die update-Methode muss etwas laden aus dem web und dieser Vorgang benötigt einige Zeit.
Jetzt dachte ich über irgendeine Art von hintergrund-Arbeiter, und ich fand BackgroundTasks.
Das problem mit Hintergrund-Aufgaben ist, soweit ich es richtig verstanden, dass Sie eigentlich dienen sollen, als Updater auch wenn die app angehalten wird. Ich brauchen das nicht.
Ich möchten nur zu aktualisieren, wenn meine app läuft nicht, wenn es ausgesetzt ist.
Ist es ein guter Weg, um dieses Problem zu lösen?
Irgendwelche Vorschläge, was für dieses zu verwenden?
Vielen Dank im Voraus!
Ich glaube nicht, dass es etwas falsch mit der Verwendung einer hintergrund-Arbeiter. Es sollte nicht dazu führen Sie irgendwelche Probleme, aber wenn Sie nicht verwenden möchten, können Sie einfädeln, das ist im Grunde das, was die background-worker nicht mit einigen Ergänzungen. Überprüfen Sie meine Antwort für Informationen, wie Sie das tun.
InformationsquelleAutor TorbenJ | 2012-11-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Benötigen Sie zwei Dinge:
Timer
Können Sie die Aktualisierung der Benutzeroberfläche in
System.Timer.Timer
mit der 10-Sekunden-Intervall.Dispatcher
Müssen Sie
Dispatcher.Invoke
zum ändern der Benutzeroberfläche ohne Beteiligung der main-UI-thread. Statt der MethodeProcess
genannt werden sollte, auf eine separaten thread (Timer
- Methode), andere als main-UI-thread, und verwenden SieDispatcher
es in der alert-main-UI-thread für die änderung.Ich habe es versucht und es hat funktioniert, müssen Sie die folgende Zeile von code zuordnen, um die form als sync-Objekt t.SynchronizingObject = (this);
InformationsquelleAutor Furqan Safdar
Müssen Sie einen Faden, der Teil des Codes, erhält und verarbeitet die Informationen von der website. Auf diese Weise, Ihre form wird nicht zögern, weil es in einem anderen thread als die Verarbeitung Teil.
Diese Artikel auf code-Projekt soll Ihnen den Einstieg.
InformationsquelleAutor FrostyFire
Außerdem könnte man mit einem timer, der eine elapsed-Ereignis, das Auftritt, jedes mal, wenn der timer an einem bestimmten Zeit-Zyklus.
InformationsquelleAutor jordan