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 Windows PowerShell úlohy v popředí. 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:
AsJob[switch]Definujte parametr, 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ý Windows PowerShellem, například objektem 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í
Následující rozhraní API poskytuje Windows PowerShell ke správě ú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í.
Windows rutiny úloh PowerShellu
Následující rutiny poskytují Windows PowerShellu pro správu úloh na pozadí.
Získá Windows úlohy na pozadí PowerShellu spuštěné v aktuální relaci.
Získá výsledky Windows úloh na pozadí PowerShellu v aktuální relaci.
Odstraní Windows úlohu powershellu na pozadí.
Spustí Windows úlohu prostředí PowerShell na pozadí.
Zastaví Windows úlohu powershellu na pozadí.
Potlačí příkazový řádek, dokud nebude dokončen jeden nebo všechny Windows úlohy na pozadí PowerShellu spuštěné v relaci.