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

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

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

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

是的,你也需要一个主循环。 这可以是隐式的(例如,在为您创建的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) ...