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

时间:2018-03-22 12:16:48

标签: gtk vala

我有一台服务器正在侦听在不同线程中运行的端口上的消息。现在收到消息后,我需要将其显示在文本框中。

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

  2. 或者有什么替代方案?

2 个答案:

答案 0 :(得分:4)

使用GLib.Idle.add在事件派发线程中安排某些事情:

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

答案 1 :(得分:-1)

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