【问题标题】:Periodic tasks in ValaVala 中的定期任务
【发布时间】:2014-06-02 17:26:27
【问题描述】:

如何在 Vala 中创建周期性任务? Vala 中是否有任何计时器类可以在指定的时间段调用预定的方法?如果是,请提供示例代码。

更新:

这是基于答案和 cmets 的示例代码:

public class Sample : Object
{
   private static bool task()
   {
      stdout.printf("Yay\n");
      stdout.flush();
      return true; // false terminates timer
   }

   public static int main(string[] args)
   {
      Timeout.add_seconds(1, task);
      new MainLoop().run();
      return 0;
   }
}

【问题讨论】:

    标签: vala


    【解决方案1】:

    您可以将TimeourSource 附加到主循环。回调的返回值决定它是否重新运行。

    【讨论】:

    • 这是正确的,但值得一提的是,大多数时候您可能想要使用 GLib.Timeout.add_full 或 GLib.Timeout.add_seconds,它们是 GLib.TimeoutSource 的便捷包装器。
    • 还值得注意的是,对于周期性的任务(连续回调不只是一次),回调应该返回 true。请查看更新后的问题
    猜你喜欢
    • 1970-01-01
    • 2016-05-04
    • 2012-11-01
    • 1970-01-01
    • 2012-07-30
    • 1970-01-01
    • 2010-10-12
    • 1970-01-01
    • 2022-01-01
    相关资源
    最近更新 更多