Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Os cmdlets podem executar sua ação internamente ou como um 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 tenha um período estendido de tempo para ser concluído e o usuário possa continuar sem interrupções enquanto o trabalho é executado.
Trabalhos em segundo plano, trabalhos filho 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 do 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 filho estão incluídos nessa definição. O trabalho não executa nenhum trabalho. 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 trabalhos.
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 pode 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 deve 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 System.Management.Automation.PSEventJob.
Em um método de processamento de registro, adicione uma instrução
ifque detecte 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.
APIs de Job-Related em segundo plano
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 Manages 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 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 em execução 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.