下面是使用 Golang 实现定时器 time.Sleep,并计算平均时长的示例代码:

package main

import (
	"fmt"
	"math"
	"time"
)

func main() {
	totalDuration := 10 // 总时长(秒为单位)
	totalFrames := 5    // 总帧数

	averageDuration := math.Ceil(float64(totalDuration*1000) / float64(totalFrames)) // 平均每帧的时长(毫秒)
	fmt.Println('Average Duration:', averageDuration)

	frameDuration := time.Duration(averageDuration) * time.Millisecond

	for i := 0; i < totalFrames; i++ {
		// 发送数据
		fmt.Println('Sending data...')

		// 等待帧时长
		time.Sleep(frameDuration)
	}
}

在上面的示例中,我们首先计算出每帧的平均时长(毫秒),然后将其转换为time.Duration类型,作为time.Sleep的参数来控制定时器的时间间隔。在循环中,我们模拟发送数据的操作,并在每次发送后等待帧时长。

请注意,为了将总时长转换为毫秒,我们将totalDuration乘以1000。这是因为在示例中使用的是整数值,所以我们需要将其转换为浮点数进行计算。

Golang 定时器实现:使用 time.Sleep 发送数据帧

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

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