该代码的问题是,在子线程中使用了未定义的变量 'monkey'。需要先定义和赋值 'monkey' 变量,才能在子线程中使用。

var running bool = true     //控制子线程运行
errChan := make(chan error) //创建一个channel用于接收报错信息

// 定义 'monkey' 变量
var monkey *YourMonkeyType // 替换为你的具体类型

go func() {
	defer func() {
		if r := recover(); r != nil {
			errChan <- fmt.Errorf('截图子线程发生错误: %v', r)
		}
	}()
	log.Println('截图子线程运行中...')
	for running {
		monkey.Device.Screenshot_continuous(&monkey.White_scr, &monkey.Black_scr,
			&monkey.White_time, &monkey.Black_time, &monkey.Pic_count, &monkey.White_time_temp, &monkey.Black_time_temp)
		time.Sleep(200 * time.Millisecond)
	}
	log.Println('截图子线程已退出!')
}()

select {
case err := <-errChan:
	log.Println(err)
}

注意:

  • YourMonkeyType 替换为你的实际 'monkey' 变量类型。
  • 确保在子线程运行之前,'monkey' 变量已经被正确定义和赋值。
Go 语言子线程截图代码错误分析:未定义变量 'monkey'

原文地址: https://www.cveoy.top/t/topic/mG0V 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录