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


A Feladatok ablak használata (C#, Visual Basic)

A Feladatok ablak hasonlít a Szálak ablakra, azzal a kivétellel, hogy az aszinkron/várakozási mintával létrehozott aszinkron tevékenységekre vonatkozó információkat jelenít meg, más néven tevékenységalapú aszinkron mintát (TAP) a szálalapú információk helyett. A szálakhoz hasonlóan a tevékenységek az egyidejűleg futtatható aszinkron műveleteket jelölik; azonban több tevékenység is futtatható ugyanazon a szálon.

A .NET-kódban a Feladatok ablakot akkor használhatja, ha az alkalmazásokkal az aszinkron/várakozási mintát használja (a VisualBasicben a Várakozás és az Async ). A Párhuzamos halmok ablak Feladatok nézete azonban gyakran hasznosabb az aszinkron alkalmazások hibakereséséhez. További információ: Aszinkron alkalmazás hibakeresése.

A .NET-kódban a Feladatok ablakot akkor használhatja, ha az alkalmazásokkal az aszinkron/várakozási mintát használja (a VisualBasicben a Várakozás és az Async ). A Párhuzamos halmok ablak Feladatok nézete azonban gyakran hasznosabb az aszinkron alkalmazások hibakereséséhez. További információ: Szálak és feladatok megtekintése a Párhuzamos veremek ablakban.

Jótanács

C/C++ kód esetén használja a Szálak nézetet a Párhuzamos verem ablakban, ha feladatcsoportokat, párhuzamos algoritmusokat, aszinkron ügynököket és egyszerűsített feladatokat kell hibakeresésre használnia. További információ: Szálak és feladatok megtekintése a Párhuzamos veremek ablakban.

A Feladatok ablakot bármikor használhatja, amikor betör a hibakeresőbe. A Hibakeresés menüben a Windows parancsra, majd a Feladatok parancsra kattintva érheti el. Az alábbi ábrán a Feladatok ablak látható az alapértelmezett módban.

Feladatok ablak

Feladatok ablak

Megjegyzés:

A felügyelt kódban előfordulhat, hogy a Task, TaskStatus.WaitingForActivation vagy TaskStatus.WaitingToRun állapotú feladatok nem jelennek meg a Feladatok ablakban, ha a felügyelt szálak alvó vagy csatlakozási állapotban vannak.

Tevékenységek oszlopának adatai

A Feladatok ablak oszlopai a következő információkat jelenítik meg.

Az oszlop neve Leírás
Zászlók Megjeleníti a megjelölt tevékenységeket, és lehetővé teszi a tevékenységek megjelölését vagy törlését.
ikonok Sárga nyíl A sárga nyíl jelzi az aktuális feladatot. Az aktuális tevékenység az aktuális szál legfelső szintű feladata.

Zöld nyíl A zöld nyíl az aktuális hibakereső környezetet jelzi (a hibakeresőben a feladatra való váltást követően).

Fehér nyíl A fehér nyíl jelzi a törési feladatot, vagyis azt, amely a hibakereső meghívásakor aktuális volt.

Szüneteltetés ikon A szüneteltetés ikon azt a feladatot jelzi, amelyet a felhasználó lefagyott. Feladatok lefagyasztásához és a fagyasztás feloldásához kattintson a jobb gombbal a listában.
Azonosító A feladathoz rendszer által megadott szám. Natív kódban ez a feladat címe.
Állapot A tevékenység aktuális állapota (ütemezett, aktív, blokkolt, holtponton, várakozás vagy befejezett).

Ütemezett állapot Állapot: Ütemezett. Az ütemezett feladat olyan, amelyet még nem futtattak, ezért még nem rendelkezik hívásveremmel, hozzárendelt szállal vagy kapcsolódó információkkal.

Aktív állapot Aktív. Az aktív feladat az, amely kódot futtatott, mielőtt feltörte a hibakeresőt.

Státusz: Blokkolva Blokkolva. A blokkolt feladat az, amely akadályozva van, mert vár egy esemény jelzésére, egy zárolás feloldására, vagy egy másik feladat befejezésére.

Állapot függőben Függőben. Nem blokkoló, várakozó feladat, amely az aszinkron/várakozási mintát használja.

Holtpont állapota Holtpont. A holtpont szimbólum egy várakozó tevékenységre utal, amelynek társított szála holtponton van egy másik szállal.

Mutasson az Állapot cellára a blokk további információinak megtekintéséhez. Figyelmeztetés: A Feladatok ablak csak akkor jelenti a holtpontot, ha egy blokkolt feladat olyan szinkronizációs primitívet használ, amelyet a Várakozási Lánc Bejárása (WCT) támogat. Például egy WCT-t használó holtpontú Task objektum esetében a hibakereső a Awaiting-deadlocked jelentést jelenti. A WCT-t nem használó egyidejűségi futtatókörnyezet által felügyelt holtpontú feladat esetén a hibakereső a Várakozást jelenti. További információ a WCT-ről: Wait Chain Traversal.
Kezdési időpont Az az időpont, amikor a tevékenység aktívvá vált.
Időtartam A tevékenység aktív másodperceinek száma.
Befejezési idő A tevékenység befejezésének időpontja.
Helyszín A feladat aktuális helye a hívásveremben. Vigye az egérmutatót erre a cellára a feladat teljes hívásveremének megtekintéséhez. Az ütemezett tevékenységeknek nincs értékük ebben az oszlopban.
tevékenység A kezdeti metódus és a tevékenységnek a létrehozáskor átadott argumentumok.
AsyncState Felügyelt kód esetén a tevékenység állapota. Alapértelmezés szerint ez az oszlop rejtett. Az oszlop megjelenítéséhez nyissa meg az egyik oszlopfejléc helyi menüjét. Válassza az Oszlopok és AsyncState elemeket.
Szülő A feladatot létrehozó tevékenység azonosítója. Ha ez üres, a tevékenységnek nincs szülője. Ez csak felügyelt programokra vonatkozik.
Szálhozzárendelés Annak a szálnak az azonosítója és neve, amelyen a feladat fut.
AppDomain Felügyelt kód esetén az az alkalmazástartomány, amelyben a feladat végrehajtása folyamatban van.
task_group Natív kód esetén a feladatot ütemező task_group objektum címe. Az aszinkron ügynökök és az egyszerűsített feladatok esetében ez az oszlop 0 értékre van állítva.
Folyamat Annak a folyamatnak az azonosítója, amelyen a feladat fut.

Ha oszlopokat szeretne hozzáadni a nézethez, kattintson a jobb gombbal egy oszlopfejlécre, majd jelölje ki a kívánt oszlopokat. (Az oszlopok eltávolítása a kijelölések törlésével.) Az oszlopokat úgy is átrendezheti, hogy balra vagy jobbra húzza őket. Az oszlop helyi menüje az alábbi ábrán látható.

Gyorselérési nézet menü a Feladatok ablakban

Gyorselérési nézet menü a Feladatok ablakban

Feladatok rendezése

A tevékenységek oszlopfeltételek szerinti rendezéséhez kattintson az oszlopfejlécre. Ha például az AZONOSÍTÓ oszlopfejlécre kattint, a tevékenységeket a következő tevékenységazonosító szerint rendezheti: 1,2,3,4,5 stb. A rendezési sorrend megfordításához kattintson ismét az oszlopfejlécre. Az aktuális rendezési oszlopot és rendezési sorrendet egy nyíl jelzi az oszlopon.

Tevékenységek csoportosítása

A feladatokat a listanézet bármely oszlopa alapján csoportosíthatja. Ha például a jobb gombbal az Állapot oszlopfejlécre kattint, majd a Csoportosítás> kattint, csoportosíthatja az azonos állapotú összes tevékenységet. Például gyorsan láthatja a várt feladatokat, így a letiltásuk okára összpontosíthat. Olyan csoportot is összecsukhat, amely nem érdekes a hibakeresési munkamenet során. Ugyanígy csoportosíthatja a többi oszlopot is. A csoportokat a csoportfejléc melletti gombra kattintva lehet megjelölni (megszüntetni). Az alábbi ábrán a Feladatok ablak látható csoportosított módban.

Csoportosított mód a Feladatok ablakban

Csoportosított mód a Feladatok ablakban

Szülő-gyermek nézet

(Ez a nézet csak felügyelt kódhoz érhető el.) Ha a jobb gombbal az Állapot oszlop fejlécére kattint, majd a Csoportosításszülő> parancsra kattint, a tevékenységek listáját hierarchikus nézetre módosíthatja, amelyben minden gyermekfeladat egy alcsomópont, amely megjeleníthető vagy elrejthető a szülője alatt.

Feladatok megjelölése

Megjelölheti azt a szálat, amelyen a tevékenység fut. Ehhez jelölje ki a tevékenységlistaelemet, majd válassza a Hozzárendelt szál megjelölése lehetőséget a helyi menüből, vagy kattintson az első oszlopban a jelölő ikonra. Ha több tevékenységet jelöl meg, a jelölőoszlopon rendezve az összes megjelölt tevékenységet felülre helyezheti, hogy csak rájuk összpontosíthasson. A Párhuzamos halmok ablak használatával is csak a megjelölt tevékenységeket tekintheti meg. Így kiszűrheti azokat a feladatokat, amelyeket nem szeretne hibakeresésre. A hibakeresési munkamenetek között nem maradnak meg a jelzők.

Fagyasztási és kiolvasztási feladatok

A feladat futtatási szálát a feladatlistára jobb gombbal kattintva, majd a Hozzárendelt szál befagyasztása parancsra kattintva fagyaszthatja le. (Ha egy tevékenység már le van fagyasztva, a parancs Thaw Assigned Thread.) Amikor egy szálat lefagyaszt, az a szál nem fog futni, amikor az aktuális töréspont után lép végig a kódon. A Csak az aktuális szál kivételével minden szál befagyasztása parancs az összes szálat zárolja, kivéve azt, amelyik a feladatlista-elemet végrehajtja.

Az alábbi ábrán az egyes tevékenységekhez tartozó többi menüelem látható.

Gyors elérési menü a Feladatok ablakban

Gyors elérési menü a Feladatok ablakban

Az aktív tevékenység vagy keret váltása

A Váltás feladatra parancs aktív feladattá teszi az aktuális tevékenységet. A Váltás keretre parancs aktív veremkeretté teszi a kijelölt veremkeretet. A hibakereső környezet átvált az aktuális feladatra vagy a kijelölt veremkeretre.