GZipStream.ReadAsync 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
ReadAsync(Memory<Byte>, CancellationToken) |
从当前 GZip 流将字节的序列异步读取到一个字节内存区域中,按读取的字节数向前移动 GZip 流中的位置,并监视取消请求。 |
ReadAsync(Byte[], Int32, Int32, CancellationToken) |
从当前 GZip 流将字节的序列异步读取到一个字节数组中,按读取的字节数向前移动 GZip 流中的位置,并监视取消请求。 |
ReadAsync(Memory<Byte>, CancellationToken)
- Source:
- GZipStream.cs
- Source:
- GZipStream.cs
- Source:
- GZipStream.cs
从当前 GZip 流将字节的序列异步读取到一个字节内存区域中,按读取的字节数向前移动 GZip 流中的位置,并监视取消请求。
public override System.Threading.Tasks.ValueTask<int> ReadAsync (Memory<byte> buffer, System.Threading.CancellationToken cancellationToken = default);
override this.ReadAsync : Memory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Overrides Function ReadAsync (buffer As Memory(Of Byte), Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)
参数
- cancellationToken
- CancellationToken
要监视取消请求的标记。 默认值为 None。
返回
一个表示异步读取操作并将读取的总字节数包装到缓冲区中的任务。 如果很多字节当前不可用,则结果值可小于在缓冲区中分配的字节数;如果已到达 GZip 流结尾,则结果值可以为 0(零)。
例外
取消令牌已取消。 此异常存储在返回的任务中。
注解
重要
从 .NET 6 开始,此方法可能不会读取请求的字节数。 有关详细信息,请参阅 DeflateStream、GZipStream 和 CryptoStream 中的部分读取和零字节读取。
使用 ReadAsync
方法可以执行资源密集型 I/O 操作,而不会阻止main线程。 此性能注意事项在桌面应用中尤其重要,因为耗时的流操作可能会阻止 UI 线程并使应用看起来好像不工作。 异步方法与 async
Visual Basic 和 C# 中的 和 await
关键字结合使用。
CanRead使用 属性确定当前实例是否支持读取。
如果在操作完成之前取消了操作,则返回的任务将包含 TaskStatus.Canceled 属性的值 Task.Status 。
适用于
ReadAsync(Byte[], Int32, Int32, CancellationToken)
- Source:
- GZipStream.cs
- Source:
- GZipStream.cs
- Source:
- GZipStream.cs
从当前 GZip 流将字节的序列异步读取到一个字节数组中,按读取的字节数向前移动 GZip 流中的位置,并监视取消请求。
public:
override System::Threading::Tasks::Task<int> ^ ReadAsync(cli::array <System::Byte> ^ array, int offset, int count, System::Threading::CancellationToken cancellationToken);
public:
override System::Threading::Tasks::Task<int> ^ ReadAsync(cli::array <System::Byte> ^ buffer, int offset, int count, System::Threading::CancellationToken cancellationToken);
public override System.Threading.Tasks.Task<int> ReadAsync (byte[] array, int offset, int count, System.Threading.CancellationToken cancellationToken);
public override System.Threading.Tasks.Task<int> ReadAsync (byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken);
override this.ReadAsync : byte[] * int * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
override this.ReadAsync : byte[] * int * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
Public Overrides Function ReadAsync (array As Byte(), offset As Integer, count As Integer, cancellationToken As CancellationToken) As Task(Of Integer)
Public Overrides Function ReadAsync (buffer As Byte(), offset As Integer, count As Integer, cancellationToken As CancellationToken) As Task(Of Integer)
参数
- arraybuffer
- Byte[]
要写入数据的缓冲区。
- offset
- Int32
从 GZip 流开始写入数据的字节偏移量。
- count
- Int32
最多读取的字节数。
- cancellationToken
- CancellationToken
要监视取消请求的标记。 默认值为 None。
返回
表示异步读取操作的任务,该操作包装读取的总字节数。 如果当前可用字节数少于所请求的字节数,则该结果值可小于所请求的字节数;如果已到达 GZip 流结尾时,则为 0(零)。
例外
取消令牌已取消。 此异常存储在返回的任务中。
注解
重要
从 .NET 6 开始,此方法可能不会读取请求的字节数。 有关详细信息,请参阅 DeflateStream、GZipStream 和 CryptoStream 中的部分读取和零字节读取。
使用 ReadAsync
方法可以执行资源密集型 I/O 操作,而不会阻止main线程。 此性能注意事项在桌面应用中尤其重要,因为耗时的流操作可能会阻止 UI 线程并使应用看起来好像不工作。 异步方法与 async
Visual Basic 和 C# 中的 和 await
关键字结合使用。
CanRead使用 属性确定当前实例是否支持读取。
如果在操作完成之前取消了操作,则返回的任务将包含 TaskStatus.Canceled 属性的值 Task.Status 。
此方法将存储在任务中,它返回该方法的同步对应项可能引发的所有非使用异常。 如果异常存储在返回的任务中,则在等待任务时将引发该异常。 使用异常(如 ArgumentException)仍会同步引发。 有关存储的异常,请参阅 引发的 Read(Byte[], Int32, Int32)异常。