Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
ATIVIDADE 1 - ENTENDIDO E EXECUTADO O CÓDIGO --------------------------------------------------------------------------------------------------------------------------- ATIVIDADE 2 - CRIADO NOVAS THREADS "CONCORRENTES", NOMEADAS DE NovaThread2 e NovaThread3. CÓDIGO ABAIXO; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; namespace Exemplo_Thread_1 { class Program { static void Main(string[] args) { // dispara uma nova thread para executar: repare que NovaThread é uma // função comum em C# Thread t = new Thread(NovaThread); Thread c = new Thread(NovaThread2); Thread d = new Thread(NovaThread3); t.Start(); c.Start(); d.Start(); for (int i = 0; i < 10000; i++) Console.Write("A"); Console.ReadKey(); } static void NovaThread() { for (int i = 0; i < 10000; i++) Console.Write("B"); } static void NovaThread2() { for (int i = 0; i < 10000; i++) Console.Write("C"); } static void NovaThread3() { for (int i = 0; i < 10000; i++) Console.Write("D"); } } } --------------------------------------------------------------------------------------------------------------------------- ATIVIDADE3 - FOI ENTENDIDO E EXECUTADO O CÓDIGO. --------------------------------------------------------------------------------------------------------------------------- ATIVIDADE 4 - FOI ENTENDIDO O CÓDIGO E COMENTADO PARA O USUÁRIO CADA ETAPA DO PROCESSO. (CÓDIGO NO FIM) --------------------------------------------------------------------------------------------------------------------------- ATIVIDADE 5 - O programa inicia instanciando uma nova Thread na variável 't' e força a mesma a rodar. Após é gerado um loop para que haja um delay a cada momento que é impresso algum texto na tela enquanto a contagem de THREADPROC continua concorrendo com o texto. Após, o programa suspende o texto exibido e inicia o ATRIBUTO JOIN para que somente a ThreadProc dada como principal finalize seu processo enquanto as demais aguardam o fim. (CÓDIGO NO FIM) --------------------------------------------------------------------------------------------------------------------------- ATIVIDADE 6 - FOI GERADO 2 RANDOM'S. (CÓDIGO NO FIM) RANDOM PARA VALOR 4 - DE 1 ATÉ 20 com o valor do Random armazenado em 'randomico1' RANDOM PARA VALOR 10 - DE 20 ATÉ 50 com o valor do Random armazendo em 'randomico2' MOTIVO: DESSA FORMA A DIDÁTICA E ENTENDIMENTO DO PROGRAMA FICA FACILITADA. RELACIONANDO QUE O VALOR 4<10 = randomico1<randomico2 = 1a20<20a50, ENTENDEU? --------------------------------------------------------------------------------------------------------------------------- CÓDIGO VÁLIDO PARA AS QUESTÕES 4 , 5 E 6. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Threading; namespace Exemplo_Thread_3 { class Program { public static void Main() { Console.WriteLine("\n\nJULIO... MODIFIQUEI O CÓDIGO PARA MELHOR DIDÁTICA, POIS ESTOU ENTENDENDO A MATÉRIA PERFEITAMENTE!" + "\nTANTO QUE ESTOU TENTANDO MELHORAR O CÓDIGO PARA A MINHA MANEIRA DE ENTEDIMENTO! OBRIGADO PELA COMPREENSÃO. " + "SE OBSERVAR, ESTÁ FAZENDO TUDO O QUE VOCE PEDE OK?!\n\n\n Pressione ENTER para continuarmos..."); Console.ReadLine(); Console.Clear(); Console.WriteLine("\n\n <<< ÍNICIO DE THREAD SERÁ INICIADA COM O DELAY DE 1/2seg >>>"); Thread t = new Thread(new ThreadStart(ThreadProc)); t.Start(); Thread.Sleep(500); Random Aleatorio = new Random(); int randomico1= Aleatorio.Next(1, 20); for (int i = 0; i < randomico1; i++) { Console.WriteLine($"\n Delay n°{i+1}/{randomico1} de 1seg até a próxima escrita...\n"); Thread.Sleep(1000); } Console.WriteLine($"\n DELAY DE 1seg FINALIZADO! AGUARDE A CONTAGEM DE THREADS! \n\n ---APLICADO ATRIBUTO JOIN QUE AGUARDA UMA THREAD FINALIZAR---\n\n"); t.Join(); Console.WriteLine("\n\n <<< FIM DA CONTAGEM DE THREADS! >>>"); Console.WriteLine("\n\n <<< MODIFIQUEI O CÓDIGO PARA MELHOR DIDÁTICA JULIO, POIS ESTOU ENTENDENDO A MATÉRIA PERFEITAMENTE!\nTANTO QUE ESTOU TENTANDO MELHORAR O CÓDIGO PARA A MINHA MANEIRA DE ENTEDIMENTO! >>>"); Console.ReadLine(); } public static void ThreadProc() { Random AleatorioThread = new Random(); int randomico2 = AleatorioThread.Next(20, 50); Console.WriteLine($" ~~~~~~~~~~~~ THREADPROC A CONTAR: {randomico2} ~~~~~~~~~~~~"); for (int i = 0; i < randomico2; i++) { Console.WriteLine($"ThreadProc: {i+1}/{randomico2}"); Thread.Sleep(500); } } } }
Compartilhar