Was ist der Unterschied zwischen + [NSThread detachNewThreadSelector: toTarget: withObject:] und - [NSObject performSelectorInBackground: withObject:]?

9

Sie scheinen eine ziemlich ähnliche Aufgabe zu erfüllen: einen neuen Thread zu starten, der diesen Selektor schnell und einfach ausführt. Aber gibt es Unterschiede? Vielleicht in Bezug auf die Speicherverwaltung?

    
Grant Paul 30.06.2011, 18:34
quelle

2 Antworten

4

Beide sind identisch.

In iOS und Mac OS X 10.5 und höher haben alle Objekte die Möglichkeit, einen neuen Thread zu generieren und ihn zum Ausführen einer ihrer Methoden zu verwenden. Die performSelectorInBackground: withObject: -Methode erstellt einen neuen gelöschten Thread und verwendet die angegebene Methode als Einstiegspunkt für den neuen Thread. Wenn Sie beispielsweise ein Objekt (dargestellt durch die Variable myObj) haben und dieses Objekt eine Methode namens doSomething hat, die Sie in einem Hintergrund-Thread ausführen möchten, könnten Sie dazu den folgenden Code verwenden:

%Vor%

Der Aufruf dieser Methode hat den gleichen Effekt, als ob Sie den Befehl detachNewThreadSelector: toTarget: withObject: Methode von NSThread mit dem aktuellen Objekt, dem Selektor und dem Parameterobjekt als Parameter aufgerufen hätten. Der neue Thread wird sofort mit der Standardkonfiguration erstellt und beginnt zu laufen. Innerhalb des Selektors müssen Sie den Thread wie jeden anderen Thread konfigurieren. Sie müssten beispielsweise einen Pool für die automatische Freigabe einrichten (wenn Sie keine Speicherbereinigung verwendet hätten) und die Ausführungsschleife des Threads konfigurieren, wenn Sie diese verwenden möchten. Informationen zum Konfigurieren neuer Threads

    
Vijay-Apple-Dev.blogspot.com 30.07.2011, 13:35
quelle
0

Ich nehme an, dass sie identisch sind, da - (void)performSelectorInBackground:(SEL)aSelector withObject:(id)arg; in NSThread.h in der Kategorie NSObject (NSThreadPerformAdditions) definiert ist. Das ist nicht schlüssig, aber das ist ein Beweis in dieser Richtung.

    
Grady Player 03.07.2011 23:47
quelle

Tags und Links