Meine Hintergrundaufgabe dauert sehr lange, und das Betriebssystem bringt sie einfach zum Absturz. Ich versuche, meine Kontakte online zu synchronisieren, ist hier, was ich tue:Windows Phone 8.1-Hintergrundaufgabe wird vor der Fertigstellung geschlossen
alle Kontakte aus dem Telefonbuch Get (dauert ca. 1 Sekunde)
sie auf einen Server hochladen (~ 2 Sekunden)
Rufen Sie alle Kontakte vom Server (~ 2-3 Sekunden)
alle Kontakte aus ContactStore- löschen (ContactStore.DeleteAsync dauert manchmal 1 Minute bis vollständig)
eine ContactStore- erstellen und alle Kontakte importieren) (~ 1-2 Minuten für 1000 Kontakte)
Ich habe ~ 100 Kontakte und es funktioniert gut, aber ich wollte mit ~ 1000 Kontakte testen und es doesn fülle nicht jedes Mal aus. Ich benutze einen MaintenanceTrigger, aber ich denke, es ist immer noch zu viel für eine Hintergrundaufgabe, aber ich brauche eine Bestätigung dafür. MaintenanceTrigger-Aufgaben sollten mehr ressourcenintensive Aufgaben ausführen können. Warum also bringt das Betriebssystem meine Hintergrundaufgabe um?
Wirklich schwer zu beantworten, ohne etwas Code zu sehen. Die Sache, die Ihnen in den Sinn kommt, ist vielleicht, dass Ihre Hintergrundaufgabe zu viel CPU, Speicher oder zu lange benötigt, um das Telefon zu beenden. –
Wenn ich einen Wartungstrigger verwende, sollte die Aufgabe abgeschlossen sein, auch wenn es benötigt viel Zeit? Das Telefon wird aufgeladen, so dass es kein Problem sein sollte, wenn es eine ressourcenintensive Aufgabe ist. – thewindev
@thewindev Bitte bearbeiten Sie Ihre Frage um klar zu machen, dass es nicht 1-2 Minuten für 1000 Kontakte ... aber 12 Minuten wie Sie später hingewiesen aus ... Ihre Frage ist irreführend und verwirrend für zukünftige Leser. –