Achtergrondtaken
Cmdlets kunnen hun actie intern of als een Windows PowerShell uitvoeren. Wanneer een cmdlet wordt uitgevoerd als achtergrondwerk, wordt het werk asynchroon uitgevoerd in een eigen thread, gescheiden van de pijplijnthread die de cmdlet gebruikt. Wanneer een cmdlet wordt uitgevoerd als achtergrondopdracht, wordt de opdrachtprompt onmiddellijk terug gegeven, zelfs als het lang duurt voordat de taak is voltooid en de gebruiker zonder onderbreking kan doorgaan terwijl de taak wordt uitgevoerd.
Achtergrondtaken, onderliggende taken en de taakopslagplaats
Het taakobject dat wordt geretourneerd door de cmdlets die achtergrondtaken ondersteunen, definieert de taak. (De cmdlet Start-Job retourneert ook een taakobject.) De naam van de taak, een id die wordt gebruikt om de taak, de statusinformatie en de onderliggende taken op te geven, zijn opgenomen in deze definitie. De taak voert geen werk uit. Elke achtergrond job heeft ten minste één onderliggende taak omdat de onderliggende taak het werkelijke werk uitvoert. Wanneer u een cmdlet uitvoeren zodat het werk wordt uitgevoerd als een achtergrond taak, moet de cmdlet de taak en de onderliggende taken toevoegen aan een algemene opslagplaats, aangeduid als de taakopslagplaats.
Zie de volgende informatie voor meer informatie over hoe achtergrondtaken worden verwerkt op de opdrachtregel:
Een cmdlet schrijven die wordt uitgevoerd als achtergrond job
Als u een cmdlet wilt schrijven die als achtergrondtaken kan worden uitgevoerd, moet u de volgende taken uitvoeren:
asJobDefinieer een switchparameter zodat de gebruiker kan bepalen of de cmdlet als achtergrond job moet worden uitgevoerd.Maak een -object dat is afgeleid van de klasse System.Management.Automation.Job. Dit object kan een aangepast taakobject of een taakobject zijn dat wordt geleverd door Windows PowerShell, zoals een System.Management.Automation.Pseventjob-object.
Voeg in een recordverwerkingsmethode een -instructie toe waarmee wordt gedetecteerd of de
ifcmdlet als achtergrond job moet worden uitgevoerd.Implementeert de taakklasse voor aangepaste taakobjecten.
Retourneren van de juiste objecten, afhankelijk van of de cmdlet wordt uitgevoerd als achtergrond taak.
Zie Ondersteuningstaken voor een codevoorbeeld.
APIJob-Related s voor achtergrondinformatie
De volgende API's worden geleverd door Windows PowerShell achtergrondtaken te beheren.
System.Management.Automation.Job Leidt aangepaste taakobjecten af. Dit is een abstracte klasse.
System.Management.Automation.Jobrepository beheert en biedt informatie over de huidige actieve achtergrondtaken.
System.Management.Automation.Jobstate Definieert de status van de achtergrond taak. De staten zijn Gestart, Actief en Gestopt.
System.Management.Automation.Jobstateinfo bevat informatie over de status van een achtergrond taak en, als de laatste statuswijziging is veroorzaakt door een fout, de reden waarom de taak de huidige status heeft ingevoerd.
System.Management.Automation.Jobstateeventargs biedt de argumenten voor een gebeurtenis die wordt verhoogd wanneer een achtergrond taak de status wijzigt.
Windows PowerShell Taak-cmdlets
De volgende cmdlets worden geleverd door Windows PowerShell achtergrondtaken te beheren.
Haalt Windows PowerShell achtergrondtaken op die worden uitgevoerd in de huidige sessie.
Haalt de resultaten van de Windows PowerShell achtergrondtaken in de huidige sessie.
Hiermee verwijdert u Windows PowerShell achtergrond taak.
Start een Windows PowerShell achtergrond taak.
Stopt een Windows PowerShell achtergrond taak.
Onderdrukt de opdrachtprompt totdat een of alle Windows PowerShell achtergrondtaken die worden uitgevoerd in de sessie zijn voltooid.
Zie ook
Feedback
Feedback verzenden en weergeven voor