¿Existe alguna manera de imprimir la Id. De subproceso actual en la que se está ejecutando el método actual?Obtención de la Id. De subproceso de la llamada al método actual
(Objective-C por favor)
¿Existe alguna manera de imprimir la Id. De subproceso actual en la que se está ejecutando el método actual?Obtención de la Id. De subproceso de la llamada al método actual
(Objective-C por favor)
NSLog(@"%@", [NSThread currentThread]);
¿Cuál es el significado de name = (null), si thread es main, devuelve NSThread: 0x60800006cb80> {number = 1, name = main}, Does significa que "nombre = (nulo)" se refiere al hilo de fondo. –
¿Y cómo se puede obtener ese nombre y número? 'name' devuelve una descripción vacía incluso para main y' number' no se encuentra en ninguna parte –
#include <pthread.h>
...
mach_port_t machTID = pthread_mach_thread_np(pthread_self());
NSLog(@"current thread: %x", machTID);
siempre mostrando el hilo actual: c07 – Rajneesh071
@ Rajneesh071 De hecho, ¿qué otra cosa hizo? esperar, mostrar la ID de un hilo diferente? –
sí ... si estoy en un hilo diferente, entonces mostrar diferentes. – Rajneesh071
se puede hackear algo como esto (esto sólo imprime bastante, pero se puede seguir adelante y dividida hasta que se obtiene el número):
+ (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;
}
En Swift
print("Current thread \(NSThread.currentThread())")
En Swift3
print("Current thread \(Thread.current)")
nall respondieron a la pregunta, pero no la verdadera pregunta .... ¿Por qué quieres saber? Más allá de la depuración o la afirmación del comportamiento correcto, las cosas básicas en currentThread son * generalmente * una mala idea. – bbum
Por mi parte, lo necesitaba para crear objetos locales de subprocesos que están adjuntos a otro objeto (es decir, asociados a un objeto primario _y_hilo, no solo al subproceso). – adib