private static async Task CallBiDiStreamingAsync(GreetService.GreetServiceClient greetServiceClient) { var requests = GreetingGenerator <GreetEveryoneRequest> .GenerateRequests(); var call = greetServiceClient.GreetEveryone(); var responseReaderTask = Task.Run(async() => { while (await call.ResponseStream.MoveNext()) { Console.WriteLine($"Reply: {call.ResponseStream.Current.Result}"); } }); foreach (var greetEveryoneRequest in requests) { await call.RequestStream.WriteAsync(greetEveryoneRequest); } await call.RequestStream.CompleteAsync(); await responseReaderTask; Console.WriteLine("Done!"); }
private static async Task CallClientStreamingAsync(GreetService.GreetServiceClient greetServiceClient) { var requests = GreetingGenerator <LongGreetRequest> .GenerateRequests(); var asyncClientStreamingCall = greetServiceClient.LongGreet(); foreach (var request in requests) { await asyncClientStreamingCall.RequestStream.WriteAsync(request); } await asyncClientStreamingCall.RequestStream.CompleteAsync(); var response = await asyncClientStreamingCall.ResponseAsync; Console.WriteLine($"Response: {response.Result}"); Console.WriteLine("Done!"); }