使用 GLib.Task 来执行异步操作

GLib.Task 提供用于执行异步操作的低级 API。

var task = new GLib.Task (null, null, (obj, result) => {
    try {
        var ret = result.propagate_boolean ();
    } catch (Error err) {
        // handler err...
    }
});

稍后在线程或回调中:

task.return_boolean (true);

要使用 GLib.Task 内部线程池:

task.run_in_thread (() => {
    task.return_boolean (true);
});