C# multithreading

C# multithreading
Diz -se que um tópico é um processo leve, tarefa ou caminho de execução de qualquer código ou programa. Os tópicos são usados ​​para executar uma tarefa ou trabalho específico e ter seu controle. O conceito de multithreading chega quando dividimos um grande fio em fios pequenos para fazê -los executar simultaneamente. Dessa forma, a carga de trabalho pode ser gerenciada e a complexidade pode ser evitada. Dentro da programação C#, recebemos o “sistema.Rosqueamento.Classe Thread ”para executar o multithreading Utilizando suas funções úteis. Este artigo é para todo usuário C# que não tem experiência em multithreading e deseja aprender seu básico. Vamos começar agora.

Exemplo # 01: O tópico principal

Você pode verificar o diretório de trabalho atual para pesquisar seu arquivo recém -gerado. Abra seu novo arquivo C# em qualquer um dos editores disponíveis do seu Ubuntu 20.04 Sistema. Nós o abrimos dentro do editor de "texto", pois é muito conveniente de usar para iniciantes e também para especialistas. Como o tópico sugere, discutiremos o conceito de multithreading. Quando criamos um objeto da classe "Thread", criamos um tópico infantil do tópico atualmente em execução. Se você deseja usar o objeto para especificar o nome de um tópico pai, é necessário usar a propriedade "CurrentThread" da classe Thread.

Então, em nosso primeiro exemplo, estaremos analisando a propriedade "CurrentThread" da classe de threads de C#. Estamos iniciando nosso primeiro código de exemplo com a inicialização da biblioteca "System" e "System.Threading ”classe. Criamos um espaço para nome chamado "Multithread" e criamos uma classe "Threading". A função principal () desta classe foi iniciada com a inicialização do objeto de classe "Thread" enquanto usava a propriedade "CurrentThread". Agora, o objeto está apontando para o tópico pai.

Estamos usando o objeto de thread pai "T" para chamar a propriedade "Nome" da classe Thread para obter o nome de um tópico atual I.e. o thread main (). Demos o nome "Main" de acordo com o código abaixo. A função WriteLine () da classe Console é usada para exibir o nome de um thread pai em nossa tela de terminal chamando a propriedade "Nome" pelo objeto "T" da classe Thread.

O primeiro passo depois de salvar nosso código é compilar o código C#. Para isso, seu sistema deve ter o compilador C# “MCS” embutido nele. Depois de compilar este arquivo com "MCS", o código "exe" será gerado automaticamente no diretório de trabalho atual do Ubuntu 20.04. Temos que usar esse arquivo "exe" para executar o código com a instrução de tempo de execução "mono" para C#. Depois de executá -lo, descobrimos que o tópico "principal" está funcionando.

Exemplo # 02: Crie um tópico infantil

Vamos dar uma olhada na criação de um novo tópico usando alguns dados "não estáticos" no código. Para isso, usamos a mesma estrutura de um código C#.e. o uso da biblioteca do "sistema" e "sistema.Threading ”classe. Nós criamos duas classes eu.e. mythread e novo. A execução deste código será iniciada a partir da nova classe, pois contém o thread de função principal (). O console.Declarações writeLine () nos mostrará que a função principal () está em execução.

Depois disso, o objeto "T1" de uma classe "mythread" foi criado. Esta criação de objeto não significa que criamos um objeto de thread. Este objeto é utilizado para chamar as funções da classe Mythread. O objeto da classe Thread "T" foi criado para criar um novo tópico. Enquanto a propriedade Threadstart desta classe Thread foi usada para iniciar a função "Threading" da classe "Mythread" como um novo thread.

O objeto "T1" está chamando sua função nos parâmetros da função "Threadstart" como um começo para um novo thread. Você precisa usar o objeto "T" para chamar a função "Iniciar" da classe Thread para iniciar a execução de um novo thread. Então, a função Threading () da classe Mythread será executada. É para o loop será executado 5 vezes, mostrando que a função de thread está em execução. O código agora está concluído. Vamos ver como isso funciona.

Depois de compilar e executar nossos arquivos C# "CS" e "EXE", respectivamente, temos a saída mostrada do abastecimento. O tópico infantil da aula "Mythread" foi executado 5 vezes, conforme o loop "for".

Exemplo # 03: Mais de um tópico

O exemplo acima foi sobre a criação de um único tópico. Neste exemplo, discutiremos o uso de funções estáticas para criar mais de um tópico infantil no programa. Então, criamos duas classes com os mesmos nomes que eu.e. mythread e novo. A nova classe contém o único método main () que está sendo usado para criar dois objetos T1 e T2 para a classe Thread para criar novos threads infantis.

Esses objetos estão usando as funções Threading1 () e Threading2 () da classe Mythread para criá -las como novos threads infantis. A função "start ()" da classe Thread foi usada para iniciar a função Threading1 () e Threading2 () usando os objetos T1 e T2 Thread. Como as duas funções do thread são estáticas, o segundo fio não pode ser iniciado até o primeiro concluir sua execução. Ambos os threads executaram suas declarações 3 vezes e o código será encerrado.

Depois de executar este código compilado, a saída mostra a execução de ambos os threads separadamente.

Exemplo # 04: Tópico de aborto

A classe Thread tem a função abort () para encerrar os threads. Ele usa o ThreadABortexecption para executar o término. Vamos dar uma olhada nisso criando duas classes, mythread e novo. A função principal () começou com o objeto "T" Criação para a classe Mythread com o nome "Thread".

O construtor da classe Mythread começou a executar e inicializou um novo tópico infantil com o objeto "T1" da classe Thread usando a função "startThread" em seus parâmetros. O nome foi atribuído à propriedade Nome e o tópico começou. As funções do thread "startThread" começam com uma instrução "Try-Catch". A declaração "tente" continuará sendo executada até que o módulo de um valor em seu loop seja 7 seja igual a 0. Onde a exceção acontece, a declaração Catch () lançará exceção de abortar.

Depois de executar este código, executamos o tópico até o valor 49 e terminamos no código 300. O tópico foi abortado devido à declaração "se" e ao console.Declaração de WriteLine () antes da declaração Catch () foi evitada.

Conclusão

Este guia é essencial para cada usuário C# que deseja aprender o básico do multithreading. Explicamos minuciosamente o uso da classe Thread em C#, para criar threads e nomeá -los com o thread atual e a propriedade "Nome". Discutimos o uso da criação de objetos da classe "Thread" para criar um único thread ou vários threads por vez e iniciá -los com a função "Iniciar" da classe Thread. Também vimos como usar a função abort () no código C# para encerrar um tópico com a ajuda de uma instrução Try-capath no código.