public sealed class AsyncResponseStream<TResponse> : IAsyncEnumerable<TResponse>, IAsyncEnumerator<TResponse>, IAsyncDisposable
An adapter from the gRPC stream representation (IAsyncStreamReader<T>) to IAsyncEnumerable<T> and IAsyncEnumerator<T>. Note that GetAsyncEnumerator(CancellationToken) can only be called once per instance due to the "only iterate once" nature of the response stream.
Namespace
Google.Api.Gax.GrpcAssembly
Google.Api.Gax.Grpc.dll
Type Parameter |
|
---|---|
Name | Description |
TResponse |
The response type. |
Remarks
This type implements both of the standard asynchronous sequence interfaces for simplicity of use:
- C# 8 users can use
await foreach
because it implements IAsyncEnumerable<T> - It's compatible with the System.Linq.Async package for query transformations.
- Pre-C# 8 users who will be calling MoveNextAsync() and Current directly don't need to call GetAsyncEnumerator(CancellationToken).
Properties
Current
public TResponse Current { get; }
Gets the element in the collection at the current position of the enumerator.
Property Value | |
---|---|
Type | Description |
TResponse |
Methods
DisposeAsync()
public ValueTask DisposeAsync()
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources asynchronously.
Returns | |
---|---|
Type | Description |
ValueTask |
GetAsyncEnumerator(CancellationToken)
public IAsyncEnumerator<TResponse> GetAsyncEnumerator(CancellationToken cancellationToken = default)
Begins iterating over the response stream, using the specified cancellation token. This method can only be called once per instance.
Parameter | |
---|---|
Name | Description |
cancellationToken |
CancellationToken The cancellation token to use in subsequent MoveNextAsync() calls. |
Returns | |
---|---|
Type | Description |
IAsyncEnumerator |
An iterator over the response stream. |
Exceptions | |
---|---|
Type | Description |
InvalidOperationException |
This method has already been called on this instance. |
MoveNextAsync()
public ValueTask<bool> MoveNextAsync()
Moves to the next item, using the cancellation token configured by GetAsyncEnumerator(CancellationToken).
Returns | |
---|---|
Type | Description |
ValueTaskbool |
MoveNextAsync(CancellationToken)
public ValueTask<bool> MoveNextAsync(CancellationToken cancellationToken)
Moves to the next item, using the specified cancellation token.
Parameter | |
---|---|
Name | Description |
cancellationToken |
CancellationToken The cancellation token to use for this step. |
Returns | |
---|---|
Type | Description |
ValueTaskbool |
A task that will complete with a result of true if the enumerator was successfully advanced to the next element, or false if the enumerator has passed the end of the collection. |