Select 从非chan类型接收时间。持续时间
在以下示例中提供:Select 从非chan类型接收时间。持续时间,select,go,time,Select,Go,Time,在以下示例中提供: func LongRunningHandler(ctx context.Context) string { deadline, _ := ctx.Deadline() for { select { case <- time.Until(deadline).Truncate(100 * time.Millisecond): ret
func LongRunningHandler(ctx context.Context) string {
deadline, _ := ctx.Deadline()
for {
select {
case <- time.Until(deadline).Truncate(100 * time.Millisecond):
return "Finished before timing out."
default:
log.Print("hello!")
time.Sleep(50 * time.Millisecond)
}
}
}
func LongRunningHandler(ctx context.context)字符串{
截止日期,uz:=ctx.deadline()
为了{
挑选{
案例使用
func LongRunningHandler(ctx context.context)字符串{
截止日期,uz:=ctx.deadline()
为了{
挑选{
案例:当你试图从非渠道接收信息时,你会期望发生什么?
select {
case m := <-c:
handle(m)
case <-time.After(5 * time.Minute):
fmt.Println("timed out")
}
func LongRunningHandler(ctx context.Context) string {
deadline, _ := ctx.Deadline()
for {
select {
case <- time.After(time.Until(deadline).Truncate(100 * time.Millisecond)):
return "Finished before timing out."
default:
log.Print("hello!")
time.Sleep(50 * time.Millisecond)
}
}
}