示例#1
0
        ValueTask <MultiplyResult> ICalculator.MultiplyAsync(MultiplyRequest request)
        {
            var result = new MultiplyResult {
                Result = request.X * request.Y
            };

            return(new ValueTask <MultiplyResult>(result));
        }
示例#2
0
        Task <MultiplyResult> ICalculator.MultiplyAsync(MultiplyRequest request)
        {
            var result = new MultiplyResult {
                Result = request.X * request.Y
            };

            return(Task.FromResult(result));
        }
        protected async Task Multiply()
        {
            GrpcClientFactory.AllowUnencryptedHttp2 = true;
            using (var channel = GrpcChannel.ForAddress("http://localhost:10042"))
            {
                var calculator = channel.CreateGrpcService <ICalculator>();
                this.Result = await calculator.MultiplyAsync(new MultiplyRequest { X = 12, Y = 4 });

                Console.WriteLine(this.Result);
            }
        }
        protected async Task TestGrpc()
        {
            var httpClient = new HttpClient(new GrpcWebHandler(GrpcWebMode.GrpcWeb, new HttpClientHandler()));

            using (var channel = GrpcChannel.ForAddress("https://localhost:5001", new GrpcChannelOptions {
                HttpClient = httpClient
            }))
            {
                var client = channel.CreateGrpcService <ICalculatorService>();
                _result = await client.MultiplyAsync(new MultiplyRequest { X = 12, Y = 4 });

                Console.WriteLine(_result);
            }
        }
示例#5
0
    private async IAsyncEnumerable <MultiplyResult> ProduceAsyncImpl([EnumeratorCancellation] CancellationToken cancellationToken)
    {
        for (int i = 0; i < 4; i++)
        {
            await Task.Delay(TimeSpan.FromSeconds(2.5));

            var result = new MultiplyResult {
                Result = i
            };
            yield return(result);

            Console.WriteLine($"[sent] {result.Result}");
        }
        Console.WriteLine("[server all done sending!]");
    }