想要使用g_timeout_add。必须运行glib主循环?

时间:2013-12-05 08:28:20

标签: c callback timeout glib

我正在尝试使用g_timeout_add(timevalue,Func,在Func中传递的值)添加回调以获取某些状态或在timevalue之后打印一些内容。

我无法看到它。我还需要调用主循环吗? 或任何其他类型的功能,以使其工作?

2 个答案:

答案 0 :(得分:1)

g_timeout_add是用于创建将在mainloop中使用/处理的GSouce的包装器。通常运行GMainLoop,或者在更复杂的情况下,在循环中调用g_main_loop_iteration(或类似)。

答案 1 :(得分:1)

是的,你也需要一个主循环。这可以是隐式的(例如,在为您创建的gtk + app中),也可以是显式的(使用g_main_loop_new和g_main_loop_run),即:

loop = g_main_loop_new (NULL, TRUE)

g_timeout_add ( ... )

g_main_loop_run (loop)

...