Threading in Objective-C
Gibt es threads in Objective C? Wenn ja, wie sind Sie deklariert und verwendet?
Wenn jemand weiß, über multithreading in Objective C, bitte mit mir teilen.
Dank und Grüße.
InformationsquelleAutor Raju | 2009-05-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen einfachen Weg, um einfach nur spin-off eine Methode in einem neuen thread zu verwenden.
+ (void)detachNewThreadSelector:(SEL)aSelector toTarget:(id)aTarget withObject:(id)anArgument
aufNSThread
. Wenn Sie das nicht von der garbage Collection eingesammelt, die Sie benötigen, um Ihre eigenen autorelease-pool.Einen anderen einfachen Weg, wenn Sie gerade nicht wollen, blockieren Sie den Haupt-thread zu verwenden.
- (void)performSelectorInBackground:(SEL)aSelector withObject:(id)arg
aufNSObject
Je nachdem, welche Art von Parallelität, die Sie nach sind, sollten Sie auch einen Blick auf
NSOperation
geben kann, dass Sie frei sperren, so können Sie es zwischen mehreren threads, unter anderem.InformationsquelleAutor monowerker
Wenn Sie die Entwicklung mit Cocoa (ie für mac oder iphone), haben Sie Zugriff auf die
NSThread
Klasse, die verwendet werden können, die für multithreading. Googeln fürNSThread
finden Sie die API.Können Sie erklären, wie die Verwendung von:
Wobei target und selector ist das Objekt, und der Selektor, den Sie starten möchten ein thread mit und ein argument ist ein argument, das zum senden an den Selektor.
Verwenden Sie dann [mythread start], um es zu starten.
InformationsquelleAutor Tom Jefferys
Ja, es gibt threading-Konzepte in Objective C. und es gibt mehrere Wege zu erreichen multi-threading in objective C.
1> NSThread
Diese erstellt einen neuen thread im hintergrund. von deinem Haupt-thread.
2> Mit performSelector
führen UI-Aufgabe auf Ihrem Haupt-thread, wenn Sie rufen Sie diese aus hintergrund-thread... kann Man auch verwenden,
Erstellen eines hintergrund-thread.
3> Mit NSoperation
Folgen Sie diesem link
4> Mit GCD
Wird
callWebService
im hintergrund-thread und sobald er fertig ist. Es wirdupdateUI
im Haupt-thread.Mehr über GCDDies ist fast der ganze Weg von multithreading, die verwendet wird, in iOS. hoffe, das hilft.
InformationsquelleAutor mihir mehta
Konnte man auch einen Blick in NSOperation
Finden Sie ein Beispiel, haben Sie einen Blick auf Drew McCormack Beitrag auf MacResearch.
InformationsquelleAutor Abizern
Bevor Sie gehen zu weit mit Sachen wie detachNewThreadSelector: seien Sie sicher, dass Sie apples offizielle Dokumentation. Für eine high-level-überblick über die Möglichkeiten (einschließlich der Bedienung von Warteschlangen, Versand Warteschlangen, und so), es gibt die Concurrency Programming Guide. Und, für einen Blick auf niedrigerer Ebene (und weniger empfohlen) einfädeln, da ist der Threading Programming Guide.
Sie definitiv nicht wollen, um die gerade drehen, bis threads, ohne zu Lesen, was Apple dazu zu sagen hat, zum Thema ersten. Sie haben sich viel Arbeit gemacht mit Sachen wie GCD, um es einfacher und sicherer zu schreiben Auger Programme.
InformationsquelleAutor James Williams