2016-05-05 3 views
0

Ich habe die
dispatch_sync verwendet (kBgQueue,^{ });Während dispatch_sync (kBgQueue,^{}); Verwenden im Hintergrund die Vordergrund-UI immer zu einem Zeitpunkt einfrieren

erhalten Antwort von Webservice im Hintergrund. Während die Antwort im Hintergrund erhalten wird, kommt es zu einer Verzögerung der Benutzeroberfläche, dh während des Eintippens der uitextview wird die Tastatur im Moment einfrieren.

Wie behebt man dieses Problem?

Vielen Dank im Voraus ..

+0

Warum dispatch_sync? Warum nicht dispatch_async? –

Antwort

2

dispatch_sync wird für den Block wartet ausgeführt werden (die Zeit in Abhängigkeit von der Operation dauern wird). Dies blockiert den Hauptthread, auf dem die Benutzeroberfläche aktualisiert wird.

Um eine ansprechende Benutzeroberfläche Sie dispatch_sync mit dispatch_async ersetzen müssen zu bekommen.

+0

Danke, es funktioniert gut – Janztks

1

richtiger Code:

dispatch_async(kBgQueue, ^{ }); 

dispatch_sync Sendet ein Blockobjekt zur Ausführung auf einer Absende-Warteschlange und wartet, bis dieser Block completes.So wird es Ihren Hauptthread blockieren.

für unterwegs finden this

Verwandte Themen