C# Dormir

C# Dormir

Em C Sharp, usamos thread para realizar tarefas diferentes no sistema operacional. Esses tópicos podem executar muitas funções, dependendo da tarefa que atribuímos. Cada tarefa é realizada dependendo da base prioritária. De cada vez, mais de um tópico está processando, tornando o processador multithreaded. Portanto, ao priorizar as tarefas no multithreading, usamos um método que suspende um tópico temporariamente por algum tempo, deixando -o descansar por um tempo, de modo que, naquele tempo, outros tópicos tenham a chance de executar primeiro.

Depois disso, aqueles tópicos suspensos realizaram o processo. Isso é feito através de um método de sono. Em C Sharp, o método do sono apreende a execução atual do thread para milissegundos especificados no programa. Um método de sono () pode ser usado de duas maneiras.

  • Sono (milissegundos);
  • Sono (tempo);

Este guia usará os dois métodos para explicar o conceito de função Sleep () no encadeamento usando C Sharp no sistema operacional Linux.

Sintaxe

# sono estático público (int milissegundos);

A variável de tipo int para milissegundos contém um número em milissegundos para suspender o thread para esse tempo especificado.

Ao inicializar o tempo em milissegundos como um parâmetro para a função do sono, se o valor do argumento do milissegundo for zero, o tópico chamará outro processo com a prioridade igual que está pronta para ser executada. Se nenhum outro tópico tiver a mesma prioridade, a execução do primeiro tópico não será cessada e continua a executar.

Exemplo 1: Função do sono com milissegundos

Como sabemos, o método do sono está preocupado com o processo de leitura multithy. Os threads são uma parte importante do nosso sistema operacional que carrega muitas funções de cada vez, realizando multitarefa. Como descrito acima, a função de sono ajuda a priorizar a tarefa, dando um pouco de descanso a um tópico no multithreading. O mesmo conceito será realizado neste exemplo. Para continuar com o exemplo, primeiro explicaremos o uso das bibliotecas. A biblioteca do sistema é para as classes, objetos e outros tipos de contêineres. Enquanto o sistema.A rosca é uma biblioteca adicional que será incluída especificamente para o processo de encadeamento.

# Usando o sistema;
# Usando o sistema.Rosqueamento;

Duas funções são declaradas aqui com Thread1 () e Thread2 (). Ambas as funções não são estáticas. Isso significa que eles não são herdados ou não podem ser usados ​​em nenhuma outra classe. Em outras palavras, ambas as funções são independentes. Dentro da primeira função, Thread1 (), usamos um loop para itera apenas duas vezes e exibirá a mensagem de que o Thread1 está funcionando. Dentro do loop, o método Sleep () é usado. Isso é usado para pausar o funcionamento do tópico por algum tempo. Nós declaramos essa função em 4 segundos.

Então, usando o método do sono, o trabalho do fio será apreendido por 4 segundos.

# Fio.Sono (4000);

Este método de thread é acessado através do próprio thread.

Da mesma forma, outra função é declarada, que é um thread (). Isso também contém um loop 'para' para que também possa iterar duas vezes, e cada vez que exibe a mensagem de que o Thread2 está funcionando. Este método também é um método não estático. Lá não usaremos a função de sono dentro do loop.

Após os dois métodos, declararemos o programa principal. Como os threads em C Sharp são declarados na classe, é obrigatório criar a instância do tópico. Essa instância do objeto será usada na criação dos threads além disso. O nome da classe será mencionado junto.

# ExemploofthRead obj = novo exemplofThread ();

O mythread do método será criado. Usaremos este objeto para criar os threads e depois inicializá -los.

Ao usar duas declarações anexadas, os objetos para os threads são criados. Depois disso, iniciaremos os tópicos usando os objetos Thr1 e Thr2.

# Thr1.começar();
# Thr2.começar();

Agora salve o arquivo. E usaremos um compilador para compilar o código -fonte acima. Este é o MCS usado para a compilação em C Sharp. Além disso, após a compilação, a execução do código ocorre. Mono é usado para executar o código com o .exe extensão do arquivo, tornando -o executável.

Arquivo de $ mcs.cs
$ MONO FILE.exe

Na execução do código, você pode ver que o primeiro e o segundo threads são executados e o primeiro tópico é executado mais tarde, enquanto o objeto do primeiro tópico é criado antes do segundo. E o primeiro tópico começa primeiro em vez do segundo tópico. Isto é por causa da função de sono que usamos no primeiro copo de thread.

Este programa funcionará para que, quando o primeiro tópico for chamado para iniciar, a função de sono for inicializada e o tópico passa a dormir por 4 segundos. O segundo tópico é executado e exibe a declaração 2 vezes de acordo com o loop. Durante esse período, a função de sono completou seu tempo de 4 segundos. Então agora ele será processado e exibirá a declaração duas vezes.

Exemplo 2: Função do sono usando timespan

Este exemplo usa uma opção de tempo de alguns segundos. Cada declaração dentro da função do encadeamento será executada com uma lacuna a tempo do período especificado. Isso nos mostra que o tópico está dormindo por um período específico. Vamos ver esse conceito demonstrando um exemplo. Dentro da classe, no programa principal, primeiro declararemos o valor do tempo limite na variável. Este valor é declarado dinamicamente usando o operador 'novo'. O tempo de palavra -chave mostra que a variável de tempo limite é do tipo de tempo.

# Timespan timeout = new timespan (0, 0, 3);

Usaremos um loop for para iterar até que a iteração atinja a 3ª vez. O loop exibirá a mensagem de que o tópico está dormindo por 3 segundos. Dentro do loop for, usaremos o método de sono de tempo. Este método será chamado através do encadeamento e conterá o timepan como o parâmetro.

# Fio.sono (tempo limite);

Uma declaração de console exibirá a mensagem de que o tópico principal sai fora do loop.

Quando executarmos o código, a mensagem pela primeira vez será exibida. Então haverá uma pausa de 3 segundos; Então, novamente, outra linha é exibida. Da mesma forma, esta linha é exibida após 3 segundos passaram.

Enquanto a última linha é declarada fora do corpo do loop, o fio principal aparecerá abruptamente após a terceira linha. Não usamos o método de tempo de sono para esta última linha.

Conclusão

O método Sleep () em C Sharp é usado para interromper o processo por alguns segundos ou para fazer o processo executar após uma pausa especificada. Essa suspensão de execução por alguns segundos é boa para o trabalho de threads no sistema operacional, pois faz com que um tópico espere e repousa por algum tempo para trabalhar mais tarde. Em segundo lugar, dá uma chance aos outros tópicos para serem executados neste intervalo de tempo. Este método de sono é eficaz para usar enquanto a CPU é multitarefa. Ambos os métodos para a função do sono são usados ​​através dos milissegundos e através do tempo.