Пример #1
0
        static bool TaskComprarPassagem()
        {
            Passagem passagem = null;

            using (var cli = new VendedorPassagemServiceClient())
            {
                cli.Open();
                try
                {
                    passagem = cli.ComprarPassagem();
                }
                catch (FaultException ex)
                {
                    Console.WriteLine(ex.Message);
                    passagem = null;
                }
                cli.Close();
            }

            if (passagem == null)
            {
                return(false);
            }

            return(true);
        }
Пример #2
0
        static void Main(string[] args)
        {
            using (var cli = new VendedorPassagemServiceClient())
            {
                cli.Open();
                cli.ListarPassagens();
                cli.Close();
            }

            Console.WriteLine("Pressione ENTER para comecar a consumir as passagens...");
            Console.ReadLine();

            Console.WriteLine("Consumindo passagens...");

            const int qtdClientes = 5;

            Task <bool>[] clientes = new Task <bool> [qtdClientes];

            for (int i = 0; i < qtdClientes; i++)
            {
                clientes[i] = Task.Run(() => TaskComprarPassagem());
            }
            Task.WaitAll(clientes);

            int countQtdPassagensCompradas = 0;

            foreach (var cliente in clientes)
            {
                if (cliente.Result == true)
                {
                    countQtdPassagensCompradas++;
                }
            }

            Console.WriteLine($"Total de passagens vendidas: {countQtdPassagensCompradas}");
            Console.WriteLine($"Total de Clientes que tentaram comprar passagem: {clientes.Length}");

            Console.ReadLine();
        }