gpt4 book ai didi

c++ - 通常使用什么方法来检测时间情况?

转载 作者:行者123 更新时间:2023-11-30 19:29:40 26 4
gpt4 key购买 nike

有一个API可以让我获取一些数据,例如:

int API_func(pointer * data)

返回值用于判断函数是否完成,数据将写入指针地址;但是如果出现问题,API_func可能无法返回,程序可能会卡住,所以我需要一个计时器来计算调用API_func时的计时器,一旦时间超过30秒,我需要向GUI发送信号,那么如何我可不可以做? 我是新手,所以想知道大师是怎么做的?我的方法是:

Thread_1:主线程,在此调用API,

Thread_2:定时器线程,包含定时器函数

当Thread_1调用API时,发送一条消息(FIFO)来激活定时器线程处的定时器功能,如果API无法成功返回,则Thread_2处的定时器将超时,然后发送一条消息到GUI?

还有什么更好的方法吗?非常感谢!抱歉,我是 stackoverflow 的新手,所以我不知道如何表达我的意思:假代码:

 Thread_1:
set_timer_flag_on(FILE *time_flag_1)
API_func()
Thread_2:
if (1==check_timer_flag(FILE *time_flag_1))
{
timer_func(set_over_time);
}

最佳答案

您可以在单独的线程中调用int API_func(pointer* data),并通过条件变量向主线程发出信号。对于int API_func(pointer* data),您编写一个包装器。 How to implement timeout for function in c++ 中有一个示例

关于c++ - 通常使用什么方法来检测时间情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52493485/

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