我是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)
}
答案 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
'导致用户是否输入内容,您可以关闭连接并发送到离开频道。