Ú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.

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ání úlohy

Získá Windows PowerShell úlohy na pozadí, které jsou spuštěny v aktuální relaci.

Příjem úlohy

Získá výsledky úlohy na Windows PowerShell na pozadí v aktuální relaci.

Odebrání úlohy

Odstraní úlohu Windows PowerShell na pozadí.

Spuštění úlohy

Spustí Windows PowerShell úlohy na pozadí.

Zastavení úlohy

Zastaví Windows PowerShell úlohy na pozadí.

Wait-Job

Potlačí příkazový řádek, dokud se neskoní jedna nebo Windows PowerShell úloh na pozadí spuštěných v relaci.

Viz také

Vytvoření rutiny Windows PowerShellu