gpt4 book ai didi

c++ - WinCE 上 C++ 中的一次性定时器

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:37:53 24 4
gpt4 key购买 nike

我正在编写一个事件处理函数 f(d),它接收一些数据 d,并且必须采取行动 X(d ),然后休眠 100ms,然后执行另一个操作 Y(d)。我会将其实现为:

void f(d)
{
X(d);
Sleep(100);
Y(d);
}

但是,f(d) 是从单线程事件处理程序调用的,因此 Sleep(100) 是 Not Acceptable 。

我想做以下事情:

void f(d)
{
X(d);
ScheduleOneShotTimer(Y,d,100);
}

我可以通过为每个调用创建一个新线程,将数据作为线程参数传递,并在执行 Y(d) 之前调用 Sleep 来实现 ScheduleOneShotTimer 。但是,由于此事件每秒最多可能发生 100 次,我担心创建和销毁所有这些线程所涉及的开销。

最好有操作系统级对“单次定时器”的支持,但我认为 CE 不会出现这种情况。我知道 SetTimer,但这对我不适用,因为我正在编写一个没有消息循环的“控制台应用程序”。

任何关于如何构建它的其他建议将不胜感激。

最佳答案

调用timeSetEvent API(一个完全不直观的 API 名称,我知道)。使用回调函数和 TIME_ONESHOT 参数。

关于c++ - WinCE 上 C++ 中的一次性定时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13903581/

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