Go 使用上下文取消工作

示例

将具有超时(或带有取消功能)的上下文传递给长时间运行的功能可用于取消该功能的工作:

ctx, _ := context.WithTimeout(context.Background(), 200*time.Millisecond)
for {
    select {
    case <-ctx.Done():
        return ctx.Err()
    default:
        // 在这里进行一些长期运行的工作!
    }
}