Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Thread.Sleep para muitas threads sendo executadas.

No exemplo da última aula, onde o professor coloca 4 threads sendo executadas ao mesmo tempo, no laço while (em que é executado enquanto há alguma das 4 threads isAlive), o único comando que tem é Thread.Sleep(250);

Esse comando (Thread.Sleep(250)) coloca todas as 4 threads em modo sleep ou apenas uma específica? Se for uma, qual? Se for as 4, como ele faz isso? Ele mantém quais threads foram criadas por método?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta
solução!

Olá, Thiago. Tudo bom com você?

Nesta aula, nós criamos 4 novas threads, mas, não vamos nos esquecer que toda aplicação já é iniciada dentro de sua própria thread, criada pelo .NET.

Sendo assim, neste momento da aula, nós temos 5 threads - as 4 que criamos + a thread criada pelo .NET;

Quando invocamos o método estático Thread::Sleep(int), nós executamos esta pausa na thread que invocou este método - se temos 5 threads, apenas a thread que invocou o método Sleep entra em modo de espera.

O Sleep(250) é executado na Thread principal, aquela criada pelo .NET. Então, o que acontece é a thread principal aguardando o término das outras 4 criadas manualmente por nós.