通常使用什么方法来检测时间情况?
What method is usually used to detect the time case?
有一个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++ 中实现函数的超时
相关文章:
- 在已经使用Git的情况下减少编译时间
- 将树节点添加到向量向量中的 n 元树遍历的平均和最坏情况时间复杂度是多少?
- 通常使用什么方法来检测时间情况?
- C++ - 最坏情况和平均情况插入时间复杂度在 std::unordered_map <int,int>?
- 如何在给定时钟偏移的情况下正确获取时间
- 测量任何 Windows 可执行文件的内存使用情况和执行时间
- std::regex 是否保证了最坏情况下的时间复杂度?
- 在给定相同的输入的情况下,某些代码怎么可能花费更多时间来运行,这似乎只是因为它处于循环中?
- 如何减少编译时间:在包含未触及的头文件的情况下
- 如何在以下C程序中计算运行时间内存和最大数据存储器使用情况
- 递归最糟糕的情况时间复杂性
- 如何在不使用时间作为种子的情况下在C++中生成随机数
- 如何在不更改持续时间的情况下更改音频的音高,而无需在Android中使用OpenSL ES或其他C / C++代码
- 如何在不使用Chrono的情况下在C 中获取纳米秒的当前时间戳
- 如何在不使用QMediaPlayer的情况下获取Qt中音频和视频文件的持续时间
- C 控制台应用程序;在牙科诊所情况下,时间优化了队列
- 在不进行轮询的情况下更改时间
- odeint内存使用情况和执行时间
- 如何在不使用 Sleep() 的情况下创建时间计数器
- 编译时间使用情况内省