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

What method is usually used to detect the time case?

本文关键字:时间 情况 检测 常使用 什么 方法      更新时间:2023-10-16

有一个API供我获取一些数据,例如:

int API_func(pointer * data)

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

Thread_1:主线程,在这里调用API,

Thread_2:定时器线程,包括定时器功能

Thread_1调用API时,在定时器线程发送消息(FIFO(激活定时器函数,如果API返回成功,Thread_2处的定时器将超时,则向GUI发送消息?

有更好的方法吗?非常感谢! 对不起,我是堆栈溢出的绿手,所以我不知道如何表达我的意思: 假代码:

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),您编写了一个包装器。一个例子是如何在 C++ 中实现函数的超时