예제 #1
0
        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();
            }
        }