有些功能可以在Vala中睡觉

时间:2018-04-05 19:21:05

标签: glib vala

在Python中有一个名为Time.Sleep ()的函数可以暂停执行一段时间,这在Vala中是另一种选择。

我尝试做的是执行While(True),但内容在一段时间内执行,例如5秒。

1 个答案:

答案 0 :(得分:3)

也许在这里看看异步示例:

// Build with: valac --pkg=gio-2.0 example.vala

public async void nap (uint interval, int priority = GLib.Priority.DEFAULT) {
  GLib.Timeout.add (interval, () => {
      nap.callback ();
      return false;
    }, priority);
  yield;
}

private async void do_stuff () {
  yield nap (1000);
}

private static int main (string[] args) {
  GLib.MainLoop loop = new GLib.MainLoop ();
  do_stuff.begin ((obj, async_res) => {
      loop.quit ();
    });
  loop.run ();

  return 0;
}

https://wiki.gnome.org/Projects/Vala/AsyncSamples