Kann man einen Completionblock von ASIHTTPREQUEST / AFNetworking auf einem Hintergrundfaden ausführen?

StackOverflow https://stackoverflow.com/questions/9465834

Frage

Ich starte mein ASIHTTPREQUEST synchron in einem separaten Thread so: generasacodicetagpre.

Der Fertigstellungsblock wird jedoch noch auf dem Hauptfaden abgefeuert. kann man die Ausführung des Fertigstellungsblocks in demselben Thread halten, wenn die Anforderung gestartet wurde?

Das einzige, mit dem ich mich lösen kann.Das löst es jedoch nicht direkt, weil Sie im Hauptthread für einen freaking kleinen Moment passieren würden, bevor Sie den Rest des Codes in die erstellte Dispatch-Warteschlange umleiten.

Hat jemand eine bessere Lösung?

edit: Dasselbe gilt auch für AfNetwork-Fertigstellungsblöcke ...

War es hilfreich?

Lösung

ok, um meine eigene Frage zu beantworten: Das ASIHTTPREQUEST-Framework hat keine Möglichkeit, Abschlussblöcke in einem anderen Thread zu starten.

Stattdessen kann man den AfNetwork-Framework verwenden.Hier haben Sie zwei Eigenschaften auf jede Art von Afoperation mit dem Namen " suctrycallbackQueue " und " failurcallbackqueue ".Dort können Sie einen vordefinierten ' dispatch_queue_t ' hinzufügen, um die Ausführung von Erfolgs- und Fehlerblöcken zu behandeln.

hoffe das hilft anderen mit dem gleichen Problem!

update: Beispiel generasacodicetagpre.

Andere Tipps

Versuchen Sie es mit einer definierten Warteschlange Ihrer eigenen Erstellung.Dann können Sie (sobald es schließlich in seinem Fertigstellungsblock-Signal auf die globale Warteschlange abgeschlossen ist, um die erforderlichen Anzeige zu aktualisieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top