方法
GioAsyncInitableinit_async
自:2.22
声明 [src]
void
g_async_initable_init_async (
GAsyncInitable* initable,
int io_priority,
GCancellable* cancellable,
GAsyncReadyCallback callback,
gpointer user_data
)
描述 [src]
开始实现接口对象的异步初始化。这必须在对象在构造后初次使用之前完成。如果对象还实现了GInitable,您可以选择调用g_initable_init()。
此方法仅供语言绑定使用。如果在C语言中编程,通常应使用g_async_initable_new_async()。
初始化完成后,将调用callback。您可以调用g_async_initable_init_finish()以获取初始化的结果。
实现可能还支持取消。如果cancellable不为空,则可以在其他线程中触发可取消对象来取消初始化。如果操作被取消,将返回错误G_IO_ERROR_CANCELLED。如果cancellable不为空,并且对象不支持可取消初始化,则将返回错误G_IO_ERROR_NOT_SUPPORTED。
与一样,如果对象未初始化或初始化时返回错误,则除了g_object_ref()和g_object_unref()之外的所有对象操作都视为无效,并且具有未定义的行为。它们通常会因g_critical()或g_warning()而失败,但不应依赖于此。
调用者不应假设实现GAsyncInitable的类可以初始化多次;有关更多信息,请参阅g_initable_init()。如果一个类明确支持多次初始化,则实现要求对第一次调用init_async()的结果所有后续调用都进行让步。
对于还支持GInitable接口的类,此方法的默认实现将在线程中运行g_initable_init()函数,因此如果您想通过线程支持异步初始化,只需实现GAsyncInitable接口,而不需重写任何接口方法。
自:2.22
此方法异步完成。请在GAsyncReadyCallback中调用g_async_initable_init_finish()以获取操作结果。
参数
io_priority-
类型:
int操作的I/O优先级。
cancellable-
类型:
GCancellable可选的
GCancellable对象,NULL表示忽略。此参数可以为空。 此数据由方法调用者拥有。 callback-
当请求被满足时调用的
GAsyncReadyCallback。此参数可以为空。 user_data-
类型:
gpointer传递给回调函数的数据。
此参数可以为空。 此数据由方法调用者拥有。