ๅฎๆถๅจ ๆฏๅฝไฝ ๆณ่ฆๅจๆชๆฅๆไธๅปๆง่กไธๆฌกๆถไฝฟ็จ็ - ๆ็นๅจ ๅๆฏไธบไฝ ๆณ่ฆไปฅๅบๅฎ็ๆถ้ด้ด้้ๅคๆง่ก่ๅๅค็ใ ่ฟ้ๆฏไธไธชๆ็นๅจ็ไพๅญ๏ผๅฎๅฐๅฎๆถ็ๆง่ก๏ผ็ดๅฐๆไปฌๅฐๅฎๅๆญขใ |
|
![]() ![]() package main |
|
import ( "fmt" "time" ) |
|
func main() { |
|
ๆ็นๅจๅๅฎๆถๅจ็ๆบๅถๆ็น็ธไผผ๏ผไฝฟ็จไธไธช้้ๆฅๅ้ๆฐๆฎใ
่ฟ้ๆไปฌไฝฟ็จ้้ๅ
ๅปบ็ |
ticker := time.NewTicker(500 * time.Millisecond) done := make(chan bool) |
go func() { for { select { case <-done: return case t := <-ticker.C: fmt.Println("Tick at", t) } } }() |
|
ๆ็นๅจๅฏไปฅๅๅฎๆถๅจไธๆ ท่ขซๅๆญขใ ๆ็นๅจไธๆฆๅๆญข๏ผๅฐไธ่ฝๅไปๅฎ็้้ไธญๆฅๆถๅฐๅผใ ๆไปฌๅฐๅจ่ฟ่ก 1600ms ๅๅๆญข่ฟไธชๆ็นๅจใ |
time.Sleep(1600 * time.Millisecond) ticker.Stop() done <- true fmt.Println("Ticker stopped") } |
ๅฝๆไปฌ่ฟ่ก่ฟไธช็จๅบๆถ๏ผๆ็นๅจไผๅจๆไปฌๅๆญขๅฎๅๆ็น 3 ๆฌกใ |
$ go run tickers.go Tick at 2012-09-23 11:29:56.487625 -0700 PDT Tick at 2012-09-23 11:29:56.988063 -0700 PDT Tick at 2012-09-23 11:29:57.488076 -0700 PDT Ticker stopped |
ไธไธไธชไพๅญ: ๅทฅไฝๆฑ