Exemple #1
0
        private async Task CalcularDivisores(int numero, string traceId)
        {
            if (numero == 1)
            {
                _redisClient.AdicionaDivisorPrimo(numero, 1);
                _context.Clients.All.SendAsync(nomeFilaDivisor, traceId, numero);
                return;
            }

            _redisClient.AdicionaDivisorPrimo(numero, 1);
            _context.Clients.All.SendAsync(nomeFilaDivisor, traceId, 1);

            Parallel.For(2, (numero / 2) + 1, idx =>
            {
                if (numero % idx == 0)
                {
                    _redisClient.AdicionaDivisorPrimo(numero, idx);
                    _context.Clients.All.SendAsync(nomeFilaDivisor, traceId, idx);
                }
            });

            _redisClient.AdicionaDivisorPrimo(numero, numero);
            _context.Clients.All.SendAsync(nomeFilaDivisor, traceId, numero);
        }