Warum nicht diesen Golong-Code zwischen mehreren Zeit auswählen.Nach Kanälen arbeiten?Warum wählt dieser Golang-Code nicht zwischen mehreren Zeitpunkten aus.Nach Kanälen funktionieren?
Siehe Code unten. Die Nachricht 'Timeout' wird nie ausgegeben. Warum?
package main
import (
"fmt"
"time"
)
func main() {
count := 0
for {
select {
case <-time.After(1 * time.Second):
count++
fmt.Printf("tick %d\n", count)
if count >= 5 {
fmt.Printf("ugh\n")
return
}
case <-time.After(3 * time.Second):
fmt.Printf("timeout\n")
return
}
}
}
Run auf Spielplatz: http://play.golang.org/p/1gku-CWVAh
Ausgang:
tick 1
tick 2
tick 3
tick 4
tick 5
ugh
Mögliche Duplikat [golang Timeouts ist mit Kanälen nicht ausgeführt] (http://stackoverflow.com/questions/34894927/golang-timeouts-is-not-executed-with-channels) – icza