private static void HandleUnaryCall(TestService.TestServiceClient client) { var inputKey = Console.ReadLine(); var input = new EchoInput() { Input = inputKey }; var tokensource = new CancellationTokenSource(); if (inputKey == "Q") { tokensource.Cancel(); } try { var res = client.GetEcho(input, cancellationToken: tokensource.Token); Console.WriteLine("Get echo: " + res.Output.Trim()); } catch (RpcException e) when(e.StatusCode == StatusCode.Cancelled) { Console.WriteLine("Operation cancelled."); } finally { tokensource.Dispose(); } }