Как прервать Thread.sleep. Альтернативы?

Я реализовал операцию в OperationQueue.

      override func main() {
    super.main()
    if isCancelled {
        return
    }
    if member.memberType == .timed {
        triggerRestEvent(duration: member.restDuration)
    }
    if isCancelled {
        triggerEndEvent()
    }
}

В triggerRestEventфункция на самом деле вызывает. По истечении срока сна мы проверяем .

Есть ли способ прервать Thread.sleepкогда isCancelledвключен?

Альтернатива — RunLoop

Документы для RunLoop предлагают цикл while вокруг функции runс пользовательским условием в цикле while. Но как мне настроить таймер для переключения выполнения циклов while? И, по-видимому, использование цикла while для этой цели в наши дни является антипаттерном?

0 ответов

Другие вопросы по тегам