Gibt es eine Möglichkeit, die aktuelle Thread-ID auszudrucken, auf der die aktuelle Methode ausgeführt wird?Thread-ID des aktuellen Methodenaufrufs abrufen
(Objective-C bitte)
Gibt es eine Möglichkeit, die aktuelle Thread-ID auszudrucken, auf der die aktuelle Methode ausgeführt wird?Thread-ID des aktuellen Methodenaufrufs abrufen
(Objective-C bitte)
NSLog(@"%@", [NSThread currentThread]);
Was ist die Bedeutung von name = (null), wenn Thread Main ist, gibt es NSThread zurück: 0x60800006cb80> {Nummer = 1, Name = Haupt}, Does es bedeutet "name = (null)" bezieht sich auf Hintergrund-Thread. –
Und wie greift man diesen Namen und diese Nummer? 'name' gibt leere Beschreibung zurück auch für main und' number' ist nirgends zu finden –
#include <pthread.h>
...
mach_port_t machTID = pthread_mach_thread_np(pthread_self());
NSLog(@"current thread: %x", machTID);
Es wird immer der aktuelle Thread angezeigt: c07 – Rajneesh071
@ Rajneesh071 In der Tat, was hast du sonst noch? erwarte, zeige die ID eines anderen Threads an? –
ja .. wenn ich auf anderen thread bin dann anders anzeigen. – Rajneesh071
Sie etwas nach oben so hacken kann (dies nur recht druckt, aber Sie können vor und Split gehen, bis Sie die Nummer erhalten):
+ (NSString *)getPrettyCurrentThreadDescription {
NSString *raw = [NSString stringWithFormat:@"%@", [NSThread currentThread]];
NSArray *firstSplit = [raw componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"{"]];
if ([firstSplit count] > 1) {
NSArray *secondSplit = [firstSplit[1] componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"}"]];
if ([secondSplit count] > 0) {
NSString *numberAndName = secondSplit[0];
return numberAndName;
}
}
return raw;
}
In Swift
print("Current thread \(NSThread.currentThread())")
In swift3
print("Current thread \(Thread.current)")
nall beantwortet die Frage, aber nicht die eigentliche Frage .... warum wollen Sie wissen? Abgesehen von der Fehlersuche oder der Bestätigung des korrekten Verhaltens ist basic stuff auf currentThread * generell * eine schlechte Idee. – bbum
Ich für einen brauchte es zum Erstellen thread-lokale Objekte, die an ein anderes Objekt (d. H. Mit einem übergeordneten Objekt verbunden sind _and_ thread - nicht nur der Thread). – adib