Stream.BeginRead 方法

开始异步读操作。

**命名空间:**System.IO
**程序集:**mscorlib(在 mscorlib.dll 中)

语法

声明
Public Overridable Function BeginRead ( _
    buffer As Byte(), _
    offset As Integer, _
    count As Integer, _
    callback As AsyncCallback, _
    state As Object _
) As IAsyncResult
用法
Dim instance As Stream
Dim buffer As Byte()
Dim offset As Integer
Dim count As Integer
Dim callback As AsyncCallback
Dim state As Object
Dim returnValue As IAsyncResult

returnValue = instance.BeginRead(buffer, offset, count, callback, state)
public virtual IAsyncResult BeginRead (
    byte[] buffer,
    int offset,
    int count,
    AsyncCallback callback,
    Object state
)
public:
virtual IAsyncResult^ BeginRead (
    array<unsigned char>^ buffer, 
    int offset, 
    int count, 
    AsyncCallback^ callback, 
    Object^ state
)
public IAsyncResult BeginRead (
    byte[] buffer, 
    int offset, 
    int count, 
    AsyncCallback callback, 
    Object state
)
public function BeginRead (
    buffer : byte[], 
    offset : int, 
    count : int, 
    callback : AsyncCallback, 
    state : Object
) : IAsyncResult

参数

  • buffer
    数据读入的缓冲区。
  • offset
    buffer 中的字节偏移量,从该偏移量开始写入从流中读取的数据。
  • count
    最多读取的字节数。
  • callback
    可选的异步回调,在完成读取时调用。
  • state
    一个用户提供的对象,它将该特定的异步读取请求与其他请求区别开来。

返回值

表示异步读取的 IAsyncResult(可能仍处于挂起状态)。

异常

异常类型 条件

IOException

尝试的异步读取超过了流的结尾,或者发生了磁盘错误。

ArgumentException

一个或多个参数无效。

ObjectDisposedException

在流关闭后调用方法。

NotSupportedException

当前 Stream 实现不支持读取操作。

备注

有关创建文件和向文件中写入文本的示例,请参见 如何:向文件写入文本。有关从文件中读取文本的示例,请参见 如何:从文件读取文本。有关读取和写入二进制文件的示例,请参见 如何:对新建的数据文件进行读取和写入。有关异步文件 I/O 的示例,请参见 异步文件 I/O

BeginRead 在流上的默认实现将同步调用 Read 方法,这意味着 Read 在某些流上可能发生阻塞。但是,如果已经异步打开某些类(如 FileStreamNetworkStream)的实例,则这些实例将完全支持异步操作。因此,对 BeginRead 的调用不会在那些流上阻塞。可以重写 BeginRead(例如,使用异步委托)以提供异步行为。

IAsyncResult 返回值传递给流的 EndRead 方法,以确定已读取的字节数并释放用于进行读取的操作系统资源。每次调用 BeginRead 时,都必须调用一次 EndRead。这可以通过与调用 BeginRead 相同的代码来完成,或者在传递给 BeginRead 的回调中完成。

当发出异步读取或写入时而不是在完成 I/O 操作时,流中的当前位置被更新。

多个同时进行的异步请求会使请求完成顺序不确定。

使用 CanRead 属性可确定当前实例是否支持读取。

如果流已关闭或者传递了无效的参数,将立即从 BeginRead 中引发异常。异步读取请求期间出现的错误(如 I/O 请求期间的磁盘故障)发生在线程池线程上,并在调用 EndRead 时引发异常。

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

.NET Compact Framework

受以下版本支持:2.0、1.0

请参见

参考

Stream 类
Stream 成员
System.IO 命名空间

其他资源

文件和流 I/O
如何:从文件读取文本
如何:向文件写入文本
异步文件 I/O