Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Rutiny můžou provádět svoji akci interně nebo jako úlohu prostředí Windows PowerShellna pozadí. Když se rutina spustí jako úloha na pozadí, práce se 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ři spuštění rutiny jako úloha na pozadí příkazový řádek vrátí okamžitě, i když dokončení úlohy trvá delší dobu a uživatel může pokračovat bez přerušení během spuštění úlohy.
Ú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 vrátí také objekt úlohy.) Název úlohy, identifikátor, který slouží k určení úlohy, informace o stavu a podřízené úlohy jsou zahrnuty v této definici. Úloha neprovádí žádnou práci. Každá úloha na pozadí má alespoň jednu podřízenou úlohu, protože podřízená úloha provádí skutečnou práci. Když spustíte rutinu tak, 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ě označovaného jako úložiště úloh.
Další informace o tom, jak se úlohy na pozadí zpracovávají na příkazovém řádku, najdete v následujících tématech:
Zápis rutiny, která se spouští jako úloha na pozadí
Pokud chcete napsat rutinu, která se dá spustit jako úloha na pozadí, musíte provést následující úlohy:
Definujte parametr přepínače
asJob, aby se uživatel mohl rozhodnout, jestli má rutinu spustit jako úlohu na pozadí.Vytvořte objekt, který je odvozen z třídy System.Management.Automation.Job. Tento objekt může být vlastní objekt úlohy nebo objekt úlohy poskytovaný prostředím Windows PowerShell, například objekt System.Management.Automation.PSEventJob.
V metodě zpracování záznamů přidejte příkaz
if, který zjistí, jestli má rutina běžet jako úloha na pozadí.Pro vlastní objekty úloh implementujte třídu úlohy.
V závislosti na tom, jestli se rutina spouští jako úloha na pozadí, vrátí příslušné objekty.
Příklad kódu najdete v tématu Jak podporovat úlohy.
Rozhraní API pro Job-Related na pozadí
Windows PowerShell poskytuje následující rozhraní API pro správu úloh na pozadí.
System.Management.Automation.Job Odvozuje vlastní objekty ú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ěna stavu způsobila chyba, důvod, proč úloha přešla do aktuálního stavu.
System.Management.Automation.JobStateEventArgs Poskytuje argumenty pro událost, která se vyvolá při změně stavu úlohy na pozadí.
Rutiny úloh Prostředí Windows PowerShell
Windows PowerShell poskytuje následující rutiny pro správu úloh na pozadí.
Získá úlohy prostředí Windows PowerShell na pozadí, které jsou spuštěny v aktuální relaci.
Získá výsledky úloh prostředí Windows PowerShell na pozadí v aktuální relaci.
Odstraní úlohu prostředí Windows PowerShell na pozadí.
Spustí úlohu prostředí Windows PowerShell na pozadí.
Zastaví úlohu prostředí Windows PowerShell na pozadí.
Potlačí příkazový řádek, dokud se nedokončují některé úlohy prostředí Windows PowerShell na pozadí spuštěné v relaci.