Как проверить текущий поток в Swift 3?
Как проверить, какой из них является текущим потоком в Swift 3?
в предыдущих версиях Swift можно было проверить, является ли текущий поток основным, сделав это:
NSThread.isMainThread()
4 ответа:
Thread.isMainThread
вернет логическое значение, указывающее, находитесь ли вы в данный момент в основном потоке пользовательского интерфейса. Но это не даст вам текущий поток. Он только скажет вам, находитесь ли вы на главном или нет.
Thread.current
вернет текущий поток, на котором вы находитесь.
Я сделал расширение для печати потока и очереди:
extension Thread { class func printCurrent() { print("\r⚡️: \(Thread.current)\r" + ": \(OperationQueue.current?.underlyingQueue?.label ?? "None")\r") } }
Thread.printCurrent()
результат будет такой:
⚡️: <NSThread: 0x604000074380>{number = 1, name = main} : com.apple.main-thread
в последнем Swift 4.0 ~ 4.2, мы можем использовать
Thread.current
посмотреть возвращает объект thread, представляющий текущий поток выполнения