private static async Task GreetEveryOne(GreetingService.GreetingServiceClient greetingClient) { var greetEveryOneStream = greetingClient.GreetEveryOne(); var greetEveryOneResponseReader = Task.Run(async() => { while (await greetEveryOneStream.ResponseStream.MoveNext()) { Console.WriteLine(greetEveryOneStream.ResponseStream.Current.Result); } }); Greeting[] greetings = { new Greeting() { FirstName = "Kevin Hayes", LastName = "Anderson" }, new Greeting() { FirstName = "John", LastName = "Doe" }, new Greeting() { FirstName = "Ford", LastName = "Henry" }, new Greeting() { FirstName = "Bob", LastName = "Miller" }, new Greeting() { FirstName = "Clive", LastName = "Gerald" }, }; foreach (var greeting in greetings) { await greetEveryOneStream.RequestStream.WriteAsync(new GreetEveryOneRequest() { Greeting = greeting }); } await greetEveryOneStream.RequestStream.CompleteAsync(); await greetEveryOneResponseReader; }