Ticker是一個定時觸發的定時器,它會每隔一段時間向一個通道發送一個事件。
下面是一個簡單的示例,演示了如何使用Ticker來定時執行任務:
package main
import (
"fmt"
"time"
)
func main() {
// 創建一個每隔1秒觸發一次的Ticker
ticker := time.NewTicker(1 * time.Second)
// 創建一個通道來接收Ticker事件
tickerChan := ticker.C
// 定義一個計數器
count := 0
for {
select {
case <-tickerChan:
// 每次收到Ticker事件時執行的任務
count = count + 1
fmt.Println("Ticker event ", count)
// 如果計數器達到5,停止Ticker
if count == 5 {
ticker.Stop()
fmt.Println("Ticker stopped")
return
}
}
}
}
在上面的示例中,我們首先創建了一個每隔1秒觸發一次的Ticker,并通過ticker.C
獲取了一個通道來接收Ticker事件。然后使用一個無限循環來監聽通道,每次收到Ticker事件時執行相應的任務。在這個示例中,我們設置一個計數器,當計數器達到5時停止Ticker。
當運行上面的代碼時,你會看到每隔1秒輸出一次"Ticker event",當計數器達到5時會停止輸出并停止Ticker。