方法
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
传递给回调函数的数据。
此参数可以为空。 此数据由方法调用者拥有。