Diferencia entre revisiones de «Programación en Vala/Funcionalidades avanzadas del lenguaje»

Contenido eliminado Contenido añadido
Sigmar (discusión | contribs.)
Sigmar (discusión | contribs.)
Línea 593:
 
=== Métodos asíncronos personalizados ===
 
El ejemplo anterior usaba métodos de la biblioteca GIO para demostrar el uso del método '''.begin()''' y de la palabra reservada '''yield'''. Pero es posible escribir métodos asíncronos de manera personalizada. A continuación se explicará la manera de hacerlo.
 
<source lang=csharp>
// Ejemplo con métodos asíncronos personalizados:
 
class Test : Object {
public async string test_string(string s, out string t) {
assert(s == "hello");
Idle.add(test_string.callback);
yield;
t = "world";
return "vala";
}
}
 
async void run(Test test) {
string t, u;
u = yield test.test_string("hello", out t);
print("%s %s\n", u, t);
main_loop.quit();
}
 
MainLoop main_loop;
 
void main() {
var test = new Test();
 
run.begin(test);
 
main_loop = new MainLoop();
main_loop.run();
}
</source>
 
== Referencias débiles ==