Vala,GTK:如何从不同的线程执行 UI 操作?

Vala, GTK :How do I perform UI operations from a different thread?

我有一个服务器在另一个线程中侦听端口 运行 上的消息。现在,一旦它收到消息,我需要将其显示在文本框中。

  1. Vala、GTK 中是否有类似 runOnUiThread()(在 android 中)或等效方法?

  2. 否则还有什么选择?

与许多其他操作系统相比,显然您可以从非 UI 线程执行 UI 操作。我可以从服务器线程成功更改 Entry 的文本。不确定是否推荐这样做。

使用GLib.Idle.add在事件调度线程中安排一些事情:

Idle.add(() => {
  textbox.Entry = "foo";
  return Source.REMOVE;
});