虚拟方法

GioAsyncInitableinit_async

since: 2.22

声明 [源]

void
init_async (
  GAsyncInitable* initable,
  int io_priority,
  GCancellable* cancellable,
  GAsyncReadyCallback callback,
  gpointer user_data
)

描述 [源]

开始异步初始化接口实现的对象。必须在对象初步构建后使用对象之前进行此操作。如果对象还实现了GInitable,则可以Optional调用g_initable_init()

此方法用于语言绑定。如果在编写C,通常应使用g_async_initable_new_async()

初始化完成后,将调用callback。然后您可以通过调用g_async_initable_init_finish()来获取初始化的结果。

实现可能还支持取消。如果cancellable不是NULL,则可以从另一个线程触发可取消对象来取消初始化。如果操作已取消,则将返回错误G_IO_ERROR_CANCELLED。如果cancellable不是NULL,并且对象不支持可取消初始化,则返回错误G_IO_ERROR_NOT_SUPPORTED

GInitable一样,如果对象未初始化,或者初始化返回错误,则认为对该对象的除g_object_ref()g_object_unref()之外的所有操作都是无效的,并且它们的操作是未定义的。它们通常会失败于g_critical()或g_warning(),但不应依赖于此。

调用者不应假设实现了GAsyncInitable的类可以初始化多次;有关更多信息,请参阅g_initable_init()。如果一个类明确支持多次初始化,则实现需要在第一个调用之后将所有后续对init_async()的调用返回结果。

对于同时支持GInitable接口的类,此方法的默认实现将在线程中运行g_initable_init()函数,因此如果要通过线程支持异步初始化,只需实现GAsyncInitable接口而无需覆盖任何接口方法即可。

自从:2.22

参数

io_priority

类型: int

操作的I/O优先级

cancellable

类型: GCancellable

可选的GCancellable对象,NULL忽略。

参数可以NULL
数据由方法调用者拥有。
callback

类型: GAsyncReadyCallback

满足请求时要调用的GAsyncReadyCallback

user_data

类型: gpointer

要传递给回调函数的数据。

参数可以NULL
数据由方法调用者拥有。