在使用 C# 中的 gRPC 时,异步调用会返回 AsyncUnaryCall<T>(对于一元调用,其他调用类型的返回类型稍有不同)。然而,AsyncUnaryCall<T> 并未扩展 Task<T>。因此,您通常会使用 Task<T> 完成的常见操作无法使用 AsyncUnaryCall<T> 完成。这些操作包括:
为什么 AsyncUnaryCall<T> 没有模仿 Task<T> 中的功能呢?
- 指定续约策略(使用 ConfigureAwait)
- 使用像 Task.WhenAny 和 Task.WhenAll 这样的辅助方法
为什么 AsyncUnaryCall<T> 没有模仿 Task<T> 中的功能呢?
Task
(请参见ResponseAsync
和ResponseHeadersAsync
)。为什么这些不足够呢? - Damien_The_Unbelievercall.ResponseAsync
。或者,对于多个调用:await Task.WhenAll(calls.Select(x => x.ResponseAsync));
- Stephen ClearyResponseAsync
,以便我可以在其上使用ConfigureAwait(false)
。 - me--