方法
GioOutputStreamwritev_async
自:2.60
声明 [源代码]
void
g_output_stream_writev_async (
GOutputStream* stream,
const GOutputVector* vectors,
gsize n_vectors,
int io_priority,
GCancellable* cancellable,
GAsyncReadyCallback callback,
gpointer user_data
)
描述 [源代码]
请求将包含在 n_vectors
个 vectors
中的字节异步写入流中。当操作完成时,将调用 callback
。然后您可以调用 g_output_stream_writev_finish()
来获取操作的结果。
异步请求期间不允许同步和异步调用,否则将导致 G_IO_ERROR_PENDING
错误。
成功时,写入的字节数将传递给 callback
。如果没有以请求的大小相同并不错误,因为它可能发生在例如部分I/O错误的情况下,但通常我们尽量写入所请求的字节数。
本方法不会因 G_IO_ERROR_WOULD_BLOCK
失败 - 如果无法接受更多数据,方法将等待直到这发生变化。
任何优先级更高(数值更低)的当前I/O请求将在优先级较低的当前请求之前执行。默认优先级为 G_PRIORITY_DEFAULT
。
异步方法拥有一个默认的后备机制,使用线程来实现异步性,因此对于继承类来说是可选的。但是,如果重写一个,则必须重写所有。
有关此函数的同步阻塞版本,请参阅 g_output_stream_writev()。
请注意,不会创建 vectors
的副本,因此它必须在 callback
被调用时尚保持有效。
自 2.60 以来可用
此方法异步完成。请在 GAsyncReadyCallback
内部使用 g_output_stream_writev_finish()
来获取操作的结果。
参数
vectors
-
类型: 一个包含
GOutputVector
的数组包含要写入的
GOutputVectors
的缓冲区。数组的长度由 n_vectors
参数指定。数据归方法调用者所有。 n_vectors
-
类型:
gsize
要写入的矢量数量。
io_priority
-
类型:
int
请求的I/O优先级。
cancellable
-
类型:
GCancellable
可选的
GCancellable
对象,使用NULL
表示忽略。参数可以是 NULL
。数据归方法调用者所有。 callback
-
当请求得到满足时调用的
GAsyncReadyCallback
。参数可以是 NULL
。 user_data
-
类型:
gpointer
传递给回调函数的数据。
参数可以是 NULL
。数据归方法调用者所有。