虚方法
GioInputStreamread_async
声明 [src]
void
read_async (
GInputStream* stream,
void* buffer,
gsize count,
int io_priority,
GCancellable* cancellable,
GAsyncReadyCallback callback,
gpointer user_data
)
描述 [src]
请求从流中异步读取 count
字节到从 buffer
开始的缓冲区。当操作完成时,将调用 callback
。然后您可以调用 g_input_stream_read_finish()
来获取操作的结果。
在异步请求期间,不允许在 stream
上进行其他同步和异步调用,并将导致 G_IO_ERROR_PENDING
错误。
count
的值大于 G_MAXSSIZE
将导致 G_IO_ERROR_INVALID_ARGUMENT
错误。
在成功的情况下,将把读取到缓冲区的字节数传递给回调。如果这不是请求的大小,则不是错误,因为例如在文件的末尾附近可能会发生这种情况,但我们通常会尽可能多地读取字节。在文件末尾(或如果 count
为零)返回零,但在其他情况下永远不返回。
具有更高优先级(数值更小)的任何待处理 i/o 请求将在优先级较低的待处理请求之前执行。默认优先级是 G_PRIORITY_DEFAULT
。
异步方法具有一个默认回退方案,该方案使用线程来实现异步性,因此对于继承类而言是可选的。但是,如果重写了一个,就必须重写所有。
参数
buffer
-
类型: 一个
guint8
的数组将数据读入的缓冲区(长度至少为 count 字节)。
该参数将由函数设置。 虚函数可以将其设置到 NULL
。数组的长度在 count
参数中指定。返回的数据由实例拥有。 count
-
类型:
gsize
将从流中读取的字节数。
io_priority
-
类型:
int
请求的 I/O 优先级。
cancellable
-
类型:
GCancellable
可选的
GCancellable
对象,NULL
表示忽略。该参数可以是 NULL
。数据由方法调用者拥有。 callback
-
当请求得到满足时调用
GAsyncReadyCallback
。 user_data
-
类型:
gpointer
传递给回调函数的数据。
该参数可以是 NULL
。数据由方法调用者拥有。