0
点赞
收藏
分享

微信扫一扫

go訂時器使用

Brose 2022-10-12 阅读 50


 定義定時器

func callByTimeID(timerId string, tick time.Duration,callback func())  {
ticker := time.NewTicker(time.Second)
defer ticker.Stop()
done := make(chan bool)
go func() {
time.Sleep(tick)
done <- true
}()
for {
select {
case <-done:
fmt.Println("Done!")
callback()
return
case t := <-ticker.C:
fmt.Println(fmt.Sprintf("TimerId:%s,Date: %v-%v-%v Time: %v:%v:%v",
timerId,t.Year(),t.Month(),t.Day(),t.Hour(),t.Minute(),t.Second()))
}
}
}

使用定時器:

func TickDemo()  {
fmt.Println("Time Tick Test.")
}

func main() {
callByTimeID("GAME_BEGIN_CLOCK",5 * time.Second,TickDemo)

}

輸出:

TimerId:GAME_BEGIN_CLOCK,Date: 2021-September-9 Time: 15:31:55
TimerId:GAME_BEGIN_CLOCK,Date: 2021-September-9 Time: 15:31:56
TimerId:GAME_BEGIN_CLOCK,Date: 2021-September-9 Time: 15:31:57
TimerId:GAME_BEGIN_CLOCK,Date: 2021-September-9 Time: 15:31:58
TimerId:GAME_BEGIN_CLOCK,Date: 2021-September-9 Time: 15:31:59
Done!
Time Tick Test.

举报

相关推荐

0 条评论