我正在尝试学习 Vala,所以我正在制作一个小型 GUI 应用程序。我之前的主要语言是 C#,所以一切进展顺利。
但是,我现在已经碰壁了。我需要连接到不会立即回答我的客户的外部网络服务器(使用 GIO)。这会使 GUI 在程序连接并执行其操作时冻结。
在 C# 中,在这种情况下我可能会使用 BackgroundWorker。不过,我似乎无法为 Vala 找到类似的东西。
基本上,我有一个 MainWindow.vala,我在其中将用于单击某个按钮的信号连接到创建 ProcessingDialog.vala 的新实例的方法。这在 MainWindow 上显示了一个对话框,我希望用户在程序执行工作(连接到服务器、通信)时看到该对话框。
我有哪些替代方案可以使这种情况发挥作用?