【问题标题】:Want to use g_timeout_add. Have to run a glib main loop?想用g_timeout_add。必须运行 glib 主循环吗?
【发布时间】:2014-01-02 01:14:17
【问题描述】:

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

我看不到。我还必须调用主循环吗? 或者任何其他类型的功能让它工作?

【问题讨论】:

    标签: c callback timeout glib


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      loop = g_main_loop_new (NULL, TRUE)
      
      g_timeout_add ( ... )
      
      g_main_loop_run (loop)
      
      ...
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-12-06
        • 2021-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多