1 回答

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個(gè)贊
根據(jù)我的評(píng)論:
for {
select {
case <-time.After(time.Second * 5):
...
default:
...
}
}
time.After每次迭代都會(huì)創(chuàng)建一個(gè)新的計(jì)時(shí)器 ( )。這意味著計(jì)時(shí)器永遠(yuǎn)不會(huì)觸發(fā)(因?yàn)閐efault)情況將始終被選中。您可以通過在循環(huán) ( playground )之外創(chuàng)建計(jì)時(shí)器來防止這種情況發(fā)生:
timer := time.After(time.Second * 5)
myLoop:
for {
select {
case <-timer:
break myLoop
default:
...
}
}
你的第二個(gè)例子對(duì)我來說工作正常(見前面提到的游樂場(chǎng))。請(qǐng)注意,我不確定這些中的任何一個(gè)是否會(huì)實(shí)現(xiàn)您正在尋找的結(jié)果,因?yàn)樗鼪]有真正定義。
- 1 回答
- 0 關(guān)注
- 98 瀏覽
添加回答
舉報(bào)