РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
733 of 1593 menu

Функция time.AfterFunc

Функция time.AfterFunc планирует выполнение переданной функции через заданный промежуток времени. Она возвращает указатель на time.Timer, который можно использовать для отмены запланированной задачи до ее выполнения. Первым параметром функция принимает интервал времени типа time.Duration, вторым - функцию без параметров, которая будет вызвана по истечении этого интервала.

Синтаксис

timer := time.AfterFunc(duration, callback)

Пример

Давайте запланируем вывод сообщения через 2 секунды:

package main import ( "fmt" "time" ) func main() { timer := time.AfterFunc(2*time.Second, func() { fmt.Println("Прошло 2 секунды") }) <-time.After(3 * time.Second) timer.Stop() }

Результат выполнения кода:

"Прошло 2 секунды"

Пример

Давайте отменим запланированную задачу до ее выполнения:

package main import ( "fmt" "time" ) func main() { timer := time.AfterFunc(1*time.Second, func() { fmt.Println("Задача выполнена") }) // Отменяем задачу через 500 миллисекунд time.Sleep(500 * time.Millisecond) stopped := timer.Stop() if stopped { fmt.Println("Задача отменена") } <-time.After(2 * time.Second) }

Результат выполнения кода:

"Задача отменена"

Пример

Давайте запланируем выполнение функции с задержкой в 3 секунды:

package main import ( "fmt" "time" ) func main() { timer := time.AfterFunc(3*time.Second, func() { fmt.Println("Выполнено через 3 секунды") }) // Ждем завершения <-time.After(4 * time.Second) timer.Stop() }

Результат выполнения кода:

"Выполнено через 3 секунды"

Смотрите также

  • функцию time.After,
    которая возвращает канал, по которому приходит значение после задержки
  • функцию time.NewTimer,
    которая создает новый таймер для отложенного выполнения
  • функцию time.Sleep,
    которая приостанавливает выполнение горутины на указанное время
  • функцию time.Timer.Stop,
    которая останавливает таймер и предотвращает выполнение запланированной функции
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить