Úlohy na pozadí
Rutiny mohou provádět svou akci interně nebo jako Windows PowerShell úlohy na pozadí. Při spuštění rutiny jako úlohy na pozadí se práce provádí asynchronně ve vlastním vlákně odděleném od vlákna kanálu, které rutina používá. Z pohledu uživatele se příkazový řádek při spuštění rutiny jako úlohy na pozadí okamžitě vrátí i v případě, že dokončení úlohy trvá delší dobu a uživatel může během běhu úlohy pokračovat bez přerušení.
Úlohy na pozadí, podřízené úlohy a úložiště úloh
Objekt úlohy vrácený rutinami, které podporují úlohy na pozadí, definuje úlohu. (Rutina Start-Job také vrátí objekt úlohy.) Do této definice je zahrnutý název úlohy, identifikátor, který se používá k určení úlohy, informace o stavu a podřízené úlohy. Úloha neprovádí žádnou práci. Každá úloha na pozadí má alespoň jednu podřízený úkol, protože podřízený úkol provádí skutečnou práci. Když spustíte rutinu, aby se práce prováděla jako úloha na pozadí, musí rutina přidat úlohu a podřízené úlohy do společného úložiště, které se označuje jako úložiště úloh .
Další informace o zpracování úloh na pozadí na příkazovém řádku najdete tady:
Zápis rutiny, která se spouští jako úloha na pozadí
Pokud chcete napsat rutinu, kterou je možné spustit jako úlohu na pozadí, musíte provést následující úlohy:
Definujte parametr přepínače, aby se uživatel mohl rozhodnout, jestli má rutinu spustit
asJob
jako úlohu na pozadí.Vytvořte objekt odvozený z třídy System.Management.Automation.Job. Tento objekt může být objekt vlastní úlohy nebo objekt úlohy poskytovaný Windows PowerShell, například objekt System.Management.Automation.Pseventjob.
Do metody zpracování záznamů přidejte příkaz , který zjistí, jestli se má rutina
if
spustit jako úloha na pozadí.Pro objekty vlastních úloh implementujte třídu úlohy.
V závislosti na tom, jestli se rutina spustí jako úloha na pozadí, vraťte příslušné objekty.
Příklad kódu najdete v tématu Jak podporovat úlohy.
Rozhraní API Job-Related pozadí
Následující rozhraní API poskytuje Windows PowerShell pro správu úloh na pozadí.
System.Management.Automation.Job Odvozuje objekty vlastních úloh. Toto je abstraktní třída.
System.Management.Automation.Jobrepository Spravuje a poskytuje informace o aktuálních aktivních úlohách na pozadí.
System.Management.Automation.Jobstate Definuje stav úlohy na pozadí. Mezi stavy patří Spuštěno, Spuštěno a Zastaveno.
System.Management.Automation.Jobstateinfo Poskytuje informace o stavu úlohy na pozadí, a pokud poslední změnu stavu způsobila chyba, důvod, proč úloha přešel do aktuálního stavu.
System.Management.Automation.Jobstateeventargs Poskytuje argumenty pro událost, která je vyvolána při změně stavu úlohy na pozadí.
Windows PowerShell Rutiny úloh
Následující rutiny jsou poskytován Windows PowerShell pro správu úloh na pozadí.
Získá Windows PowerShell úlohy na pozadí, které jsou spuštěny v aktuální relaci.
Získá výsledky úlohy na Windows PowerShell na pozadí v aktuální relaci.
Odstraní úlohu Windows PowerShell na pozadí.
Spustí Windows PowerShell úlohy na pozadí.
Zastaví Windows PowerShell úlohy na pozadí.
Potlačí příkazový řádek, dokud se neskoní jedna nebo Windows PowerShell úloh na pozadí spuštěných v relaci.
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro