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?

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.