Exemple #1
0
        static async Task PrimeNumberDecomposition(Channel channel)
        {
            WriteHeader("PrimeNumberDecomposition");
            var primeNumDecompositionClient  = new PrimeNumberDecompositionService.PrimeNumberDecompositionServiceClient(channel);
            var primeNumDecompositionRequest = new DecompositionRequest {
                Value = 246
            };
            var primeNumDecompoResponse = primeNumDecompositionClient.Decompose(primeNumDecompositionRequest);

            while (await primeNumDecompoResponse.ResponseStream.MoveNext())
            {
                Console.WriteLine(primeNumDecompoResponse.ResponseStream.Current.Divider);
            }
        }
        public override async Task Decompose(DecompositionRequest request, IServerStreamWriter <DecompositionResponse> responseStream, ServerCallContext context)
        {
            var k     = 2;
            var value = request.Value;

            while (value > 1)
            {
                if (value % k == 0)
                {
                    await responseStream.WriteAsync(new DecompositionResponse { Divider = k });

                    value /= k;
                    await Task.Delay(200);
                }
                else
                {
                    k++;
                }
            }
        }