2017-04-21 59 views

回答

2

你可以使用

struct CallbackArguments { 
    YourClass *that; 
    GVariant *call_params; 
} 

,並通過CallbackArgumentsuser_data

+0

你是否建議動態地爲CallbackArguments分配內存並在回調中銷燬它?保證回調是否被調用? –

+2

標準方法是動態分配這個閉包,是的;並在回調中銷燬它。只要[GMainContext'](https://developer.gnome.org/glib/stable/glib-The-Main-Event-Loop.html)迭代到足夠的範圍內,回調函數就保證只調用一次操作完成。 這是所有使用['GAsyncResult'](https://developer.gnome.org/gio/stable/GAsyncResult.html)的異步操作都可以處理的習慣用法。 –