Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Os cmdlets podem executar suas ações internamente ou como umde trabalho em segundo plano do Windows PowerShell. Quando um cmdlet é executado como um trabalho em segundo plano, o trabalho é feito de forma assíncrona em seu próprio thread separado do thread de pipeline que o cmdlet está usando. Do ponto de vista do usuário, quando um cmdlet é executado como um trabalho em segundo plano, o prompt de comando retorna imediatamente, mesmo que o trabalho demore muito tempo para ser concluído, e o usuário pode continuar sem interrupção enquanto o trabalho é executado.
Trabalhos em segundo plano, trabalhos filhos e o repositório de trabalhos
O objeto de trabalho retornado pelos cmdlets que dão suporte a trabalhos em segundo plano define o trabalho. (O cmdlet Start-Job também retorna um objeto de trabalho.) O nome do trabalho, um identificador usado para especificar o trabalho, as informações de estado e os trabalhos filhos são incluídos nessa definição. O trabalho não executa nenhum dos trabalhos. Cada trabalho em segundo plano tem pelo menos um trabalho filho porque o trabalho filho executa o trabalho real. Quando você executa um cmdlet para que o trabalho seja executado como um trabalho em segundo plano, o cmdlet deve adicionar o trabalho e os trabalhos filho a um repositório comum, conhecido como repositório de tarefas .
Para obter mais informações sobre como os trabalhos em segundo plano são tratados na linha de comando, consulte o seguinte:
Escrevendo um cmdlet que é executado como um trabalho em segundo plano
Para escrever um cmdlet que possa ser executado como um trabalho em segundo plano, você deve concluir as seguintes tarefas:
Defina um parâmetro de opção
asJobpara que o usuário possa decidir se deseja executar o cmdlet como um trabalho em segundo plano.Crie um objeto que deriva da classe System.Management.Automation.Job. Esse objeto pode ser um objeto de trabalho personalizado ou um objeto de trabalho fornecido pelo Windows PowerShell, como um objeto de System.Management.Automation.PSEventJob.
Em um método de processamento de registros, adicione uma instrução
ifque detete se o cmdlet deve ser executado como um trabalho em segundo plano.Para objetos de trabalho personalizados, implemente a classe de trabalho.
Retorne os objetos apropriados, dependendo se o cmdlet é executado como um trabalho em segundo plano.
Para obter um exemplo de código, consulte Como dar suporte a trabalhos.
Background Job-Related APIs
As APIs a seguir são fornecidas pelo Windows PowerShell para gerenciar trabalhos em segundo plano.
System.Management.Automation.Job Deriva objetos de trabalho personalizados. Esta é uma classe abstrata.
System.Management.Automation.JobRepository Gerencia e fornece informações sobre os trabalhos em segundo plano ativos atuais.
System.Management.Automation.JobState Define o estado do trabalho em segundo plano. Os estados incluem Iniciado, Em execução e Parado.
System.Management.Automation.JobStateInfo Fornece informações sobre o estado de um trabalho em segundo plano e, se a última alteração de estado foi causada por um erro, o motivo pelo qual o trabalho entrou em seu estado atual.
System.Management.Automation.JobStateEventArgs Fornece os argumentos para um evento que é gerado quando um trabalho em segundo plano muda de estado.
Cmdlets de trabalho do Windows PowerShell
Os cmdlets a seguir são fornecidos pelo Windows PowerShell para gerenciar trabalhos em segundo plano.
Obtém trabalhos em segundo plano do Windows PowerShell que estão sendo executados na sessão atual.
Obtém os resultados dos trabalhos em segundo plano do Windows PowerShell na sessão atual.
Exclui um trabalho em segundo plano do Windows PowerShell.
Inicia um trabalho em segundo plano do Windows PowerShell.
Interrompe um trabalho em segundo plano do Windows PowerShell.
Suprime o prompt de comando até que um ou todos os trabalhos em segundo plano do Windows PowerShell em execução na sessão sejam concluídos.