时间的行为。定时器

时间:2018-04-23 04:18:06

标签: go

我是Go的新手,时间包对我来说有点混乱。所以我正在制作一个聊天框,其想法是当你发送信息时,计时器重置为20秒,如果你没有响应20秒,你就会被踢出去。我的代码只有在人输入了某些东西时才有效,但是如果他们从未输入任何内容,那么它们就不会被踢出去。我尝试在for循环之前应用Stop(),但它不起作用。我应该在循环之前和之后完成所有计时器而不是for循环吗?

func ... {

  timer := time.NewTimer(20 * time.Second)

  for input.Scan() {
  go func(){
    <-timer.C
    leaving <- ch
    conn.Close()
  }()

  messages <- input.Text()
  timer.Stop()
  timer.Reset(20 * time.Second)
}

1 个答案:

答案 0 :(得分:1)

您可以使用public static RaycastHit2D Raycast(Vector2 origin, Vector2 direction, float distance = Mathf.Infinity, int layerMask = DefaultRaycastLayers, float minDepth = -Mathf.Infinity, float maxDepth = Mathf.Infinity); ;例如;

time.AfterFunc

'导致用户是否输入内容,您可以关闭连接并发送到离开频道。