GDBusProxy - 在就绪回调中获取输入参数

Posted

技术标签:

【中文标题】GDBusProxy - 在就绪回调中获取输入参数【英文标题】:GDBusProxy - Get input parameters in ready callback 【发布时间】:2017-09-18 07:51:51 【问题描述】:

我正在使用gdbus-codegen 生成代码。但基本上我想在GAsyncReadyCallback callback 中获取传递给g_dbus_proxy_call() GVariant *parameters 的参数。

我不想为此使用 gpointer user_data,因为我需要 this 指针。

我该怎么做?

https://developer.gnome.org/gio/stable/GDBusProxy.html#g-dbus-proxy-call

【问题讨论】:

【参考方案1】:

你可以使用

struct CallbackArguments 
    YourClass *that;
    GVariant *call_params;

并将CallbackArguments 传递为user_data

【讨论】:

您是否建议为 CallbackArguments 动态分配内存并在回调中销毁它?回调是否保证被调用? 标准的做法是动态分配这个闭包,是的;并在回调中销毁它。只要对GMainContext 进行了足够的迭代以完成操作,就可以保证只调用一次回调。这是可以处理所有使用GAsyncResult 的异步操作的惯用方式。

以上是关于GDBusProxy - 在就绪回调中获取输入参数的主要内容,如果未能解决你的问题,请参考以下文章

uicontrol 回调函数输入参数过多

如何从 Angular 中的异步输入中获取“就绪”值

如何将 GDBusInterface 转换为 GDBusProxy?

在宜搭中使用动作绑定和获取回调函数参数!

D3 在回调期间为用户定义的输入获取 NULL

js怎样获取调用回调函数的参数值