单击按钮时如何在vala中异步运行函数

纳特

我刚从Vala开始,遇到了障碍

当我尝试在按钮上运行大型功能时,它将锁定整个应用程序,直到完成

我该如何将类似以下内容的内容放入线程或给予异步回调?

    var btn = new Gtk.Button();

    btn.label = "Run something massive!";

    btn.clicked.connect (() => {
        Process.spawn_command_line_sync("gksudo apt-get update",
                                        out ls_stdout,
                                        out ls_stderr,
                                        out ls_status);

        btn.set_sensitive (false);
    });
阿普马塞尔

在Gtk +中,只有一个线程可以处理GUI事件。如果要执行后台进程,则可以创建线程或拆分任务并在主循环中对其进行处理。我推荐后者。

要启动进程,请考虑GLib.Process.spawn_async要知道进程何时退出,您将必须使用ChildWatch安装处理程序

该示例ChildWatch可能是您想要的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在每次单击按钮时旋转imageview中的图像?

如何在Android Java中单击按钮时从MainActivity之外的类中调用函数

单击按钮时如何在表格中添加子行

在Flask中,如何在单击按钮时生成动态URL?

如何通过单击按钮运行在jsp中声明的函数

如何在更改值而不是单击按钮时运行函数?

如何在表中单击按钮时添加动态行?

如何在Python函数中运行异步代码?

如何在Razor中单击按钮时更改模型值?

如何在Vala中创建异步可变参数函数

在pygame中单击图像时,如何运行函数?

如何在单击按钮时更改onclick函数值

如何在php中单击按钮时显示表格?

单击按钮时如何在js中获得活动按钮

如何在jQuery中单击按钮时调用函数

如何在单击按钮时获取javascript函数

当我在reactjs中单击按钮时如何加载函数

如何在jsp中编写一个函数,当单击“提交”按钮时可以调用该函数

ubuntu中的关闭按钮如何在单击时起作用?

如何在按钮单击时更新 setinterval 函数中的变量值

如何在 Angular 中按顺序运行异步函数?

如何在VueJS中单击按钮B时启用按钮A?

C# WPF 如何在按钮单击时使用线程运行异步任务

单击 Google Maps 的 InfoWindow 中的按钮时,如何在方法中调用函数?

在 HTML 中单击按钮时如何运行 JavaScript 文件?

如何从 svelte 在 javascript 中单击按钮时调用异步函数?

在 JavaScript 中单击两个按钮时如何运行函数

在 Angular 中,如何在单击时更改按钮的文本

如何在单击反应中的按钮时预填充字段?