Как прервать 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 для этой цели в наши дни является антипаттерном?