[DICA — C#/Série Certificação] — Manage Program Flow — Parte 3

Cleiton Felipe
2 min readSep 11, 2018

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

--

--

Cleiton Felipe

Pai do Pedro, casado com Janna Granado, Software Developer, Co-founder/Community Manager da SoroCódigos, adoro desenvolver soluções