Как проверить текущий поток в Swift 3?

Как проверить, какой из них является текущим потоком в Swift 3?

в предыдущих версиях Swift можно было проверить, является ли текущий поток основным, сделав это:

NSThread.isMainThread()

4 ответов


похоже, это просто Thread.isMainThread в Swift 3.


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, представляющий текущий поток выполнения