Unter bestimmten Bedingungen, wenn mein Timer ausgelöst wird, möchte ich alle meine aktiven Hintergrundthreads aussetzen und aus der App abmelden. Wie erreiche ich das?Aussetzen aktiver Hintergrundthreads in iOS
0
A
Antwort
0
- Wenn Sie GCD verwenden, können die übertragenen Aufgaben nicht gestoppt werden.
- Wenn Sie jedoch versuchen, NSOperationQueue zu verwenden, können die Aufgaben gestoppt werden, die derzeit nicht ausgeführt werden.
- Wenn Sie NSThread oder Pthread verwenden, denke ich, dass es schwierig ist, sie ohne zusätzliche Anstrengungen zu stoppen.
1
Ihr Hintergrund-Thread überprüfen muß, um zu sehen, ob es storniert wurde, entweder durch die isCancelled
Methode ...
if ([[NSThread currentThread] isCancelled]) {
// do cleanup here
[NSThread exit];
}
Sie können nicht den Faden von außen töten, weil es keine Möglichkeit gibt, zu wissen, In welchem Zustand sich der Thread befinden könnte, und somit würde er töten, würde unbestimmtes Verhalten erzeugen.
Verwandte Themen
- 1. Was sind Haupt- und Hintergrundthreads in iOS?
- 2. Core Data sperrt Hintergrundthreads
- 3. Erzwinge programmgesteuert das Aussetzen einer iOS 7 App?
- 4. Aussetzen einer iOS-App (Symbo-Link .monotouch-32)
- 5. Android CursorAdapters, ListViews und Hintergrundthreads
- 6. Einen .Net-Dienst aussetzen
- 7. Aktiver Tab in SWT TabFolder
- 8. Wie aussetzen ich wp_delete_post()
- 9. Rescue-Caching aktiver Datensatzaufruf
- 10. jQuery - Suche aktiver Reiter
- 11. Aktiv/aktiver Schrittmacher?
- 12. Hintergrundfarbe aktiver Registerkarten ändern
- 13. Benutzerdefinierter Beitragstyp aktiver Menüeintrag
- 14. Sind Hintergrundthreads eine schlechte Idee? Warum?
- 15. Aussetzen der Web-API in Service Fabric
- 16. reactjs - aussetzen reagieren Komponentenmethoden Baum
- 17. REST-Dienst mit Biztalk aussetzen
- 18. webpack Objekt aussetzen als globale
- 19. iOS: Nicht von der Funktion zurückkehren, bis mehrere Hintergrundthreads abgeschlossen sind
- 20. wie mein aktiver Reiter unclickable in jquery
- 21. Yii2 subquery GROUP BY in aktiver Datensatz
- 22. Effiziente, zuverlässige Anzahl aktiver Objekte
- 23. coderigniter aktiver Datensatz wo, or_where?
- 24. Ereignis für nicht behandelte Ausnahmen in Silverlight-Hintergrundthreads?
- 25. Wie warten Sie, bis alle Hintergrundthreads fertig sind (in C#)?
- 26. Wie flink Funktionen aussetzen NUR objc
- 27. biztalk aussetzen Orchestrierung für x Zeit
- 28. WCF Service aussetzen DTO oder Entität
- 29. Aussetzen der SQL Server-Datenbank mit REST
- 30. AngularJS aussetzen Service-Eigenschaft auf $ Umfang
Ich habe nur mit NSThread getrennt. – Jeyanthu
Dann denke ich, Sie sollten Logik wie while (wahr) {if (sollteEnde) {return;}} in der Thread-Funktion hinzufügen. Und die shootEnd-Variable sollte in etwas wie Mutex gelesen werden, um zwischen Multithreads zu schützen – user3349433