方法

GioCancellableconnect

since: 2.22

声明 [src]

gulong
g_cancellable_connect (
  GCancellable* cancellable,
  GCallback callback,
  gpointer data,
  GDestroyNotify data_destroy_func
)

描述 [src]

连接到 GCancellable::cancelled 信号的一个便捷函数。同时也处理了在连接之前可取消操作器被取消时可能发生的竞态条件。

callback 每当 cancellable 被取消时恰好调用一次,如果在连接当时 cancellable 已经被取消,或者在某线程中 cancellable 被取消。如果在通过 g_cancellable_reset() 重置可取消操作器后,cancellable 被取消,则回调可以再次被调用。

data_destroy_func 在处理程序断开连接时或立即在可取消操作器已经取消的情况下被调用。

有关如何使用此功能,请参阅 GCancellable::cancelled

自 GLib 2.40 以来,当调用 callback 时,保护 cancellable 的锁不会被保持。这取消了对较早 GLib 版本的限制,现在使得编写无条件调用例如 g_cancellable_cancel() 的清理代码变得更加容易。

Available since: 2.22

参数

callback

类型: GCallback

要连接的 GCallback

data

类型: gpointer

传递给 callback 的数据。

该参数可以是 NULL
该数据由方法调用者所有。
data_destroy_func

类型: GDestroyNotify

用于释放 data 或传递 NULL 的函数。

该参数可以是 NULL

返回值

类型: gulong

信号处理程序的 ID 或如果 cancellable 已经被取消则为 0。