1
我很难编写使用“out”返回多个值的“异步”函数。从异步函数中返回多个值
public async void getArticle(int articleID, out string html, out string title, out string author, out string url)
{
}
这足以触发该错误。只要关键字“异步” IST函数头调用函数时,我得到了以下错误的一部分:
error: Argument 2: Cannot convert from `string?' to `GLib.AsyncReadyCallback?'
这是呼叫的样子
getArticle(15752, out html, out title, out author, out url);
如果我删除的关键字“异步”一切再次开始工作。这甚至可能在vala中,或者我是否必须返回一个包含所有4个字符串的对象才能使其工作?
感谢所有帮助提前
最好的问候,扬
THX,但我怎么弄这个lambda表达式的值?类似于“getArticle.begin(15752,(obj,result,html,title,author,url)=> { getArticle.end(result,out html,out title,out author,out url); });不起作用 – 2014-09-03 02:33:21
函数完成执行后调用回调函数,但立即调用begin()调用后的下一行。没有办法访问out变量,因为这些值不一定存在。查看https://wiki.gnome.org/Projects/Vala/Tutorial#Asynchronous_Methods了解更多信息。 – nemequ 2014-09-03 08:08:48