Megosztás a következőn keresztül:


Háttérfeladatok

A parancsmagok belsőleg vagy Windows PowerShell-háttérfeladatként is végrehajthatják a műveletet. Ha egy parancsmag háttérfeladatként fut, a feladat aszinkron módon, a saját szálában történik, a parancsmag által használt folyamatszáltól elkülönítve. Felhasználói szempontból, amikor egy parancsmag háttérfeladatként fut, a parancssor azonnal visszatér, még akkor is, ha a feladat végrehajtása hosszabb időt vesz igénybe, és a felhasználó megszakítás nélkül folytathatja a feladatot.

Háttérfeladatok, gyermekfeladatok és feladattár

A feladatot a háttérfeladatokat támogató parancsmagok által visszaadott feladatobjektum határozza meg. (A Start-Job parancsmag egy feladatobjektumot is visszaad.) A feladat neve, a feladat megadására használt azonosító, az állapotinformációk és a gyermekfeladatok ebben a definícióban szerepelnek. A feladat nem hajtja végre a munkát. Minden háttérfeladathoz tartozik legalább egy gyermekfeladat, mert a gyermekfeladat elvégzi a tényleges munkát. Amikor parancsmagot futtat, hogy a munka háttérfeladatként legyen végrehajtva, a parancsmagnak hozzá kell adnia a feladatot és a gyermekfeladatokat egy közös adattárhoz, amelyet feladatadattárnak.

További információ a háttérfeladatok parancssori kezeléséről:

Háttérfeladatként futó parancsmag írása

Háttérfeladatként futtatható parancsmag írásához a következő feladatokat kell elvégeznie:

  • Adjon meg egy asJob kapcsolóparamétert, hogy a felhasználó eldönthesse, hogy háttérfeladatként futtatja-e a parancsmagot.

  • Hozzon létre egy objektumot, amely a System.Management.Automation.Job osztályból származik. Ez az objektum lehet egyéni feladatobjektum vagy a Windows PowerShell által biztosított feladatobjektum, például egy System.Management.Automation.PSEventJob objektum.

  • Rekordfeldolgozási módszerben adjon hozzá egy if utasítást, amely észleli, hogy a parancsmagnak háttérfeladatként kell-e futnia.

  • Egyéni feladatobjektumok esetén implementálja a feladatosztályt.

  • Adja vissza a megfelelő objektumokat attól függően, hogy a parancsmag háttérfeladatként fut-e.

Példakód: Feladatok támogatása.

A Háttérfeladatok kezeléséhez a Windows PowerShell a következő API-kat biztosítja.

System.Management.Automation.Job Egyéni feladatobjektumokat származtat. Ez egy absztrakt osztály.

System.Management.Automation.JobRepository Kezeli és ismerteti az aktuális aktív háttérfeladatokat.

System.Management.Automation.JobState A háttérfeladat állapotát határozza meg. Az állapotok közé tartozik az Indítás, a Futtatás és a Leállítva.

System.Management.Automation.JobStateInfo Információt nyújt egy háttérfeladat állapotáról, és ha az utolsó állapotváltozást hiba okozta, a feladat aktuális állapotba lépésének oka.

System.Management.Automation.JobStateEventArgs A háttérfeladat állapotának módosításakor felmerülő esemény argumentumait adja meg.

Windows PowerShell-feladatparancsmagok

A Háttérfeladatok kezeléséhez a Windows PowerShell a következő parancsmagokat biztosítja.

Get-Job parancs

Lekéri az aktuális munkamenetben futó Windows PowerShell-háttérfeladatokat.

Feladat fogadása

Lekéri a Windows PowerShell-háttérfeladatok eredményeit az aktuális munkamenetben.

Feladat eltávolítása

Windows PowerShell-háttérfeladat törlése.

munka indítása

Elindít egy Windows PowerShell-háttérfeladatot.

feladat leállítása

Leállítja a Windows PowerShell háttérfeladatát.

várakozási feladat

Letiltja a parancssort, amíg a munkamenetben futó Windows PowerShell-háttérfeladatok valamelyike vagy mindegyike be nem fejeződik.

Lásd még:

Windows PowerShell-parancsmag írása