GiO可取消

描述 [源]

class Gio.Cancellable : GObject.Object
{
  /* No available fields */
}

GCancellable 允许操作被取消。

GCancellable 是一个线程安全的操作取消堆栈,被完全应用于 GiO 中,以便可以取消同步和异步操作。

祖先

构造函数

g_cancellable_new

创建一个新的 GCancellable 对象。

函数

g_cancellable_get_current

从堆栈中获取最顶端的可取消对象。

实例方法

g_cancellable_cancel

cancellable 设置为已取消,并会发出 GCancellable::cancelled 信号,但是如果你计划连接到该信号,请在文档中查看该信号相关的竞态条件警告。(然而,如果你计划连接到该信号,请参阅该信号的文档中的关于竞态条件警告。)

g_cancellable_connect

连接到 GCancellable::cancelled 信号的便利函数。也处理了在连接前可取消对象被取消可能发生的竞态条件。

自 2.22 版起

g_cancellable_disconnect

与 g_signal_handler_disconnect() 函数类似,断开来自可取消实例的处理器的连接。另外,如果当前有信号处理器正在运行,则此调用将一直阻塞,直到处理器完成。因此,从 GCancellable::cancelled 信号处理器中调用此函数会导致死锁。

自 2.22 版起

g_cancellable_get_fd

获取可取消作业的文件描述符。这可以用于在 Unix 系统上实现可取消操作。当 cancellable 被取消时,返回的文件描述符会变为可读。

g_cancellable_is_cancelled

检查可取消作业是否已被取消。

g_cancellable_make_pollfd

创建与 cancellable 对应的 GPollFD。这可以被传递给 g_poll() 并用于等待取消。这对于没有本地 poll 的 Unix 系统以及 Windows 端口友好性都很有用。

自 2.22 版起

g_cancellable_pop_current

从可取消堆栈中移除 cancellable(确认 cancellable 是否位于堆栈顶部)。

g_cancellable_push_current

cancellable 添加到可取消堆栈中。然后可以使用 g_cancellable_get_current() 来接收当前的取消。

g_cancellable_release_fd

释放之前由 g_cancellable_get_fd() 或 g_cancellable_make_pollfd() 分配的资源。

自 2.22 版起

g_cancellable_reset

cancellable 重置为其未取消状态。

g_cancellable_set_error_if_cancelled

如果 cancellable 被取消,将错误设置为通知操作已被取消。

g_cancellable_source_new

创建一个触发器,如果cancellable被取消,则调用其类型的GCancellableSourceFunc回调。这主要用于将另一个(不可取消)的源附加到使用g_source_add_child_source()的源上,以便为其添加可取消性。

自:2.28

GObject继承的方法(43个)

请参阅GObject以获取方法的全清单。

信号

Gio.Cancellable::cancelled

在操作被取消时发出。

GObject继承的信号(1个)
GObject::notify

当对象的一个属性通过g_object_set_property()、g_object_set()等方法设置值时,发出notify信号。

类结构

struct GioCancellableClass {
  GObjectClass parent_class;
  void (* cancelled) (
    GCancellable* cancellable
  );
  void (* _g_reserved1) (
void
  );
  void (* _g_reserved2) (
void
  );
  void (* _g_reserved3) (
void
  );
  void (* _g_reserved4) (
void
  );
  void (* _g_reserved5) (
void
  );
  
}

没有可用的描述。

类成员
parent_class: GObjectClass

没有可用的描述。

cancelled: void (* cancelled) ( GCancellable* cancellable )

没有可用的描述。

_g_reserved1: void (* _g_reserved1) ( void )

没有可用的描述。

_g_reserved2: void (* _g_reserved2) ( void )

没有可用的描述。

_g_reserved3: void (* _g_reserved3) ( void )

没有可用的描述。

_g_reserved4: void (* _g_reserved4) ( void )

没有可用的描述。

_g_reserved5: void (* _g_reserved5) ( void )

没有可用的描述。

虚拟方法

Gio.CancellableClass.cancelled
没有可用的描述。