package main import ( "fmt" "time" ) func main() { ticker := time.NewTicker(500 * time.Millisecond) defer ticker.Stop() done := make(chan bool) count := 0 go func() { for { select { case t := <-ticker.C: count++ fmt.Println("触发:", t.Format("15:04:05")) if count >= 5 { done <- true return } case <-done: return } } }() <-done fmt.Println("Ticker 已停止") }