[DICA — C#/Série Certificação] — Manage Program Flow — Parte 3
Fala galera,
[Disclaimer] — Como falei nos posts anteriores recentemente voltei aos estudos para obter as certificações Microsoft, que você pode conferir quais estão disponíveis para realização neste link.
Então resolvi começar a registrar meus códigos de exemplo no GitHub, e para não ficar escrevendo textos gigantescos nos comentários resolvi incluir na série “Dicas de C#” que já venho disponibilizando algumas coisas aqui no blog.
Caso não tenha lido os posts anteriores é só acessar os seguintes links abaixo:
[DICA — C#/Série Certificação] — Manage Program Flow — Parte 1
[DICA — C#/Série Certificação] — Manage Program Flow — Parte 2
Obs.: Todos os fontes terão um comentário do que a classe e métodos estão realizando em tempo de execução.
Neste post vou estar abordando mais algumas funcionalidades da classe Thread.
Bora lá!
Uma das funcionalidades da classe Thread que podemos estar usando é um overload do construtor da classe para que a nossa Thread possa receber uma instancia do delegate ParameterizedThreadStart, com este overload podemos usar para passarmos algum dado através da inicialização da Thread, veja o código abaixo:
Neste código estou passando o valor 5 sendo do tipo object no método Start da instancia “t”, dando um cast para inteiro para inteirar o nosso for, você pode passar o valor da maneira que precisar.
Lembrando que este parâmetro sempre terá que ser do tipo object.
Parando Threads
Uma coisa que precisamos saber também é como parar um Thread. Isso é possível utilizando o método Thread.Abort, porem se utilizarmos este método podemos ter um problema pois este método é executado por outra Thread e com isso ter um estado corrompido da nossa aplicação e com isso podemos ter um exception que pode parar nossa aplicação e não conseguirmos utiliza-la mais.
O código abaixo demostra uma maneira para evitarmos a utilização do Thread.Abort:
Neste caso a Thread fica em execução até que a variável stooped receba o valor de True, após isso o método Join() faz com que a sua aplicativo espere até que a Thread conclua a execução.
Uma Thread tem a sua própria call stack que armazena todos os métodos que são executados. Este assunto é bem interessante por isso vou deixa-lo para os próximos posts para que eu possa abordar melhor.
Para esta 3ª parte é isso, espero que esta serie esteja ajudando a todos pois eu estou aprendendo muito estudando estes assuntos e compartilhando com vocês.
Bom por este post é isso galera, até o próximo!
Referências: https://www.amazon.com.br/Exam-Ref-70-483-Programming-MCSD/dp/0735676828