如何解决Vala异步关闭
我正在尝试进行异步关闭,因为我在内部调用了另一个异步函数。我正在尝试做一些这样的事情:
void connect_on_button_click () {
some_button.connect (() => {
var val = yield some_async_function ();
// Do something with the value...
});
}
但是vala编译器给出了错误。 所以目前我的解决方案是传递一个已定义的异步函数,例如:
async void on_button_click () {
var val = yield some_async_function ();
// Do something with the value...
}
void connect_on_button_click () {
some_button.connect (on_button_click);
}
但是我想知道是否可以将闭包标记为异步,这样我就不必创建另一个函数了吗?
解决方法
当前aren't supported的异步lambda / closures / delegates。
但是,如果上面的示例反映了您的实际用例,那么您实际上并不需要它们,您只需要使用async_method.begin(…)
form来调用async方法:
void connect_on_button_click () {
some_button.connect (() => {
some_async_function.begin();
});
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。