Apakah ada cara untuk mencetak id utas saat ini di mana metode saat ini sedang dijalankan?
(mohon obyektif-c)
iphone
objective-c
cocoa
multithreading
Alexi Groove
sumber
sumber
Jawaban:
sumber
name
mengembalikan deskripsi kosong bahkan untuk utama dannumber
tidak bisa ditemukanNSString *s = [NSString stringWithFormat:@"%@", [NSThread currentThread]]; int threadNum = -1; sscanf(s.UTF8String, "<NSThread: 0x%*12[0-9a-f]>{number = %d", &threadNum);
sumber
[NSThread currentThread]
metode kelas mengembalikan sebuah objek NSThread. Anda dapat mencatat alamat objek utas itu, tetapi bagaimana cara mendapatkan ID utas numerik, seperti yang ditampilkan di debugger Xcode? (Utas 1 untuk utas utama, dan bertambahnya angka untuk setiap utas tambahan yang dibuat oleh aplikasi Anda.)Di Swift 5
sumber
Di Swift
sumber
Di Swift4
print ("\ (Thread.current)")
sumber
Anda dapat meretas sesuatu seperti ini (ini hanya tercetak cantik, tetapi Anda dapat melanjutkan dan membaginya sampai Anda mendapatkan nomornya):
sumber