
遵循对@fzerorubigd的回答,但更加完整。
然后,我们应该使用
for-
select组合循环。以下是工作解决方案:
http://play.golang.org/p/3uJrAIhnTQ
package mainimport ( "time" "log" "fmt")func main() { start_interval := float64(1000) quit := make(chan bool) go func(){ ticker := time.NewTicker(time.Duration(start_interval) * time.Millisecond) counter := 1.0 for { select { case <-ticker.C: log.Println("ticker accelerating to " + fmt.Sprint(start_interval/counter) + " ms") ticker.Stop() ticker = time.NewTicker(time.Duration(start_interval/counter) * time.Millisecond) counter++ case <-quit: ticker.Stop() log.Println("..ticker stopped!") return } } }() time.Sleep(5 * time.Second) log.Println("stopping ticker...") quit<-true time.Sleep(500 * time.Millisecond) // just to see quit messages}欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)