gpt4 book ai didi

c++ - cpp项目中的定时命令(windows)

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:30:58 25 4
gpt4 key购买 nike

我希望有人能帮我解决这个问题(英语不是我的母语,所以对于任何语法或拼写错误,我深表歉意):

作为我正在编码的项目的一部分,我需要为一些命令计时。更具体地说:我有 2 组命令(让我们称它们为集合 A 和集合 B)——我需要执行集合 A,然后等待特定的毫秒数(在集合 A 中计算),然后执行集合 B。我做了它在两组之间使用 Sleep(time) 命令。

现在,我需要合并另一组命令(C 组),它们将在 A 组和 B 组之间的时间内循环运行,而不是什么都不做。意思是,我需要它循环 C 集,而不是程序之前空闲的时间(等待指定的毫秒数)- 但要注意的是它必须循环 C 完全它在空闲时间等待的时间。

如何在不使用线程的情况下执行此操作? (通常保持尽可能简单)

最佳答案

我想 C 中命令集的“工作时间”是已知的。 C 是一个循环,它可以/应该在等待时间到期时结束。

在这种情况下,我建议使用 performance counter倒数等待时间。根据计算的内容和在 C 中引入的过度计算,获得的精度可以在微秒范围内。

伪代码:

Delay = 1000
Do A
CounterBegin = GetCounter()
// and now the C loop
while ((GetCounter() - CounterBegin) < Delay) {
Do C
}
Do B

注意:计数器的值要通过计数器频率转换成时间。请参阅上面的链接以获取详细信息。

关于c++ - cpp项目中的定时命令(windows),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12174532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com