Nyelv

Szálak megtekintése a Visual Studio hibakeresőjében (C#, Visual Basic, C++)

A Szálak ablak a Visual Studio hibakeresőjében lehetővé teszi a hibakeresési alkalmazás szálainak vizsgálatát és használatát. Az ablak funkciókat szolgáltat a kódban lévő szálak csoportosítására, rendezésére, megjelölésére, "lefagyasztására," visszaállítására és keresésére, valamint a hívásveremek megjelenítésére.

A Szálak ablak csak akkor érhető el, ha a Visual Studio hibakeresője fut. Hibakeresési munkamenet során megnyithatja az Ablakot, ha a Hibakeresés>Windows>Szálaklehetőséget választja.

Ez a cikk ismerteti, hogyan használhatja a Szálak ablakot a C#, Visual Basic vagy C++ programjaiban. A Párhuzamos verem ablakban található Szálak nézet azonban gyakran hasznosabb a hibakereséshez. További információ: Holtpont hibakeresése a Szálak nézetben , valamint a Szálak és feladatok megtekintése a Párhuzamos verem ablakban.

A Szálak ablak táblázatának megtekintése

A Szálak ablak egy táblázatot jelenít meg, amelyben minden sor egy külön szálnak felel meg az alkalmazásban. Az alapértelmezett nézetben a táblázat az alkalmazás összes szálát megjeleníti. A táblabeállításokat úgy konfigurálhatja, hogy csak az Önt érdeklő szálak jelenjenek meg. A táblázat több oszlopot biztosít a szálak részletes leírásához. Módosíthatja az oszlopok elhelyezését, és elrejtheti a szükségtelen oszlopokat.

Az alábbi táblázat ismerteti a Szálak ablak táblájában elérhető összes oszlopot, és jelzi, hogy az oszlop az alapértelmezett nézetben látható vagy rejtett-e. Az oszlopok az alapértelmezett táblázatpozíciójuk szerint jelennek meg balról jobbra.

Oszlop Alapértelmezett Leírás
zászló Látható, címkézetlen Az oszlopban piros zászlók jelzik a különleges figyelmet igénylő szálakat. Válassza ki a zászlót (az ikon színe pirosra változik) a szál megjelöléséhez vagy a jelölés megszüntetéséhez (az ikon a zászló körvonalává változik). A színes jelölő ikon segít megkülönböztetni a megjelölt szálakat a táblázat más szálaitól. További információ: Jelölő és szálbontás.
aktuális szál Látható, címkézetlen Az oszlop sárga nyíl ikonja a hibakeresőben futó alkalmazás aktuális szálát jelzi. Az oszlopban található nyílvázlat ikon egy nem ismétlődő szál aktuális hibakereső környezetét jelzi.
azonosító Látható Megadja az egyes szálak azonosítószámát.
Felügyelt Azonosító Látható Megjeleníti a felügyelt szálak felügyelt azonosítószámait.
kategória Látható A szálak kategóriáját felhasználói felületi szálként, távoli eljáráshívás-kezelőként vagy feldolgozószálként jelöli. Egy speciális kategória azonosítja az alkalmazás fő szálát.
név Látható Azonosítja az egyes szálakat a nevével, vagy <Nincs név>, ha a szálnak nincs megadott neve. Ha egy szál már nem létezik, a szál címkéje [Thread Destroyed].
hely Látható Megjeleníti, hogy a szál hol fut az alkalmazáshívási veremen belül. A legördülő nyilat választva megtekintheti a szál teljes hívásveremét. Ha egy szál már nem létezik, a lokáció <nem érhető el>.
prioritási Rejtett Megjeleníti a rendszer által az egyes szálakhoz rendelt prioritást vagy elsőbbséget.
affinitási maszk Rejtett Megjeleníti az egyes szálak processzor affinitási maszkját. A többprocesszoros rendszerekben az affinitási maszk határozza meg a processzorokat, amelyeken egy szál futtatható.
felfüggesztett darabszám Rejtett Megadja a felfüggesztettek számát. Ez a szám határozza meg, hogy egy szál futtatható-e. További információkért lásd: Szálak lefagyasztása és felolvasztása.
folyamatnév Rejtett Megjeleníti azt a folyamatot, amelyhez az egyes szálak tartoznak. Az oszlopban szereplő adatok számos folyamat hibakeresése esetén hasznosak lehetnek.
folyamat-azonosító Rejtett Azt a folyamatazonosítót jeleníti meg, amelyhez az egyes szálak tartoznak.
Szállítmányozási minősítő Rejtett Egyedileg azonosítja azt a gépet, amelyhez a hibakereső csatlakozik.

Táblázatoszlopok megjelenítése és elrejtése

A Szálak ablak eszköztárában a Oszlopok legördülő lista az elérhető oszlopok listáját jeleníti meg. Bontsa ki a legördülő listát, és válasszon egy oszlopnevet a láthatóságának a táblában való váltásához. A látható oszlopok pipával vannak jelölve a listában.

Jelölőszálak különleges figyelmet

A zászló ikonnal megjelölhet szálakat különleges figyelemért. A megjelölt szálakat a Szálak ablaktábla piros jelölő ikonja jelzi. További információ: Jelölő és szálbontás.

Csak megjelölt szálak megjelenítése

Szűrheti a Szálak ablakot, hogy csak megjelölt szálak jelenjenek meg. A Szálak ablak eszköztárán válassza a Csak megjelölt szálak megjelenítése (dupla jelölő ikon) lehetőséget. A Ctrl + 9 billentyűparancsot is használhatja. Ez a művelet csak megjelölt szálak esetén érhető el.

Szálak fagyasztása és kiolvasztása

Egy szál rögzítésekor a rendszer nem indítja el a szál végrehajtását, még akkor sem, ha rendelkezésre állnak erőforrások.

Natív kódban felfüggesztheti vagy folytathatja a szálakat a Windows-függvények SuspendThread és ResumeThreadmeghívásával. Az MFC-függvényeket CWinThread::SuspendThread és CWinThread::ResumeThreadis meghívhatja. Ha meghívja a SuspendThread vagy ResumeThread függvényt, a felfüggesztett darabszám jelenik meg a Szálak ablakban. A felfüggesztettek száma nem változik, ha natív szálat fagyaszt vagy olvaszt fel. A szál csak akkor hajtható végre natív kódban, ha feloldódik, és a felfüggesztett száma nulla.

A felügyelt kódban a felfüggesztett darabszám megváltozik egy szál rögzítésekor vagy felolvasztásakor. Ha a felügyelt kódban zárol egy szálat, annak felfüggesztett száma 1. Ha natív kód használatakor megfagyaszt egy szálat, a felfüggesztések száma 0, kivéve, ha a SuspendThread hívást használja.

Jegyzet

Ha natív kódból kezelt kódba irányuló hívást hibakeresés során vizsgál, a kezelt kód ugyanabban a fizikai szálban fut, mint a hívást kezdeményező natív kód. A natív szál felfüggesztése vagy rögzítése a felügyelt kódot is zárolja.

Kijelölt szálak végrehajtásának módosítása

Egy vagy több szál végrehajtását lefagyaszthatja vagy felolvaszthatja. A Szálak ablakban jelölje ki azokat a szálakat, amelyek végrehajtási állapotát frissíteni szeretné. A Szálak ablak eszköztárán válassza a Szálak rögzítése (lejátszás szünet ikon) vagy A szálak feloldása (zöld lejátszás ikon) lehetőséget. A művelet csak az aktuálisan kijelölt szálakra vonatkozik. A rögzítési és felolvasztási műveletek az egyes szálak jobb gombbal kattintva elérhető helyi menüjében is elérhetők.

Az aktuális szál módosítása

A Szálak ablaktábla sárga nyíl ikonja jelzi az aktuális szálat (és a végrehajtási mutató helyét). Az eredeti aktuális száljelölő is megmarad (egy nyíl körvonal ikonnal jelenik meg).

Váltás másik szálra

A hibakeresőben kétféleképpen válthatja át az aktuális szálat. Kattintson duplán a Szálak ablaktábla bármelyik szálára, hogy az legyen az aktuális szál. Másik lehetőségként kattintson a jobb gombbal egy szálra, és válassza a Váltás szálralehetőséget.

Csoportosítás és rendezés alkalmazása szálakra

A Szálak ablaktábla szálait az elérhető oszlopokkal megegyező feltételekkel csoportosíthatja. A csoportosításhoz minden feltétel mindig elérhető, függetlenül attól, hogy a megfelelő oszlop látható-e az aktuális nézetben. A táblához csak egy csoportosítást választhat.

A szálak csoportosításakor az egyes csoportok táblázatában egy címsor jelenik meg. A címsor tartalmazza a csoport leírását, valamint a csoport tagjainak számát. Ha Névszerint csoportosít, olyan címsorokat láthat, mint a Feldolgozószál vagy Nem jelölt szálak. Az egyes csoportfejlécek mellett megjelenik egy kibontás/összecsukás nyíl ikon.

Miután alkalmaz egy csoportosítási feltételt, a Szálak ablak nézete frissül, hogy az egyes csoportok tagszálai megjelenjenek a címsoruk alatt. A csoporthoz tartozó kibontás/összecsukás nyíl ikonnal megjelenítheti vagy elrejtheti a tagokat az aktuális nézetben.

Egyetlen rendezési feltételt is alkalmazhat a Szálak ablaktábla szálaira. A csoportosítás elsőbbséget élvez a rendezéssel szemben. Csoportosíthatja például a szálakat Kategória szerint, majd az egyes Kategóriánbelül azonosító alapján rendezheti őket.

A táblázat szálainak csoportosítása

A Szálak ablak eszköztárán bontsa ki a Csoportosítás alapján legördülő listát, és válassza ki a szálak csoportosításának kritériumait. Az alkalmazott csoportosítást úgy is eltávolíthatja, ha a Nincs lehetőséget választja a Csoport legördülő listában.

A táblázat szálainak rendezése

Rendezést alkalmazhat a Szálak ablaktábla szálaira a táblázat tetején található oszlopfejlécek kiválasztásával, például Név vagy azonosító.

Amikor kiválaszt egy oszlopfejlécet, a Szálak ablaktábla nézete frissül a kijelölt oszlop értékei szerint rendezett szálak megjelenítéséhez. A kijelölt oszlopban egy fel/le nyíl ikon is látható. A felfelé mutató nyíl ikon a kijelölt oszlop szerinti rendezést jelzi növekvő sorrendben. A lefelé mutató nyíl ikon a kijelölt oszlop szerinti rendezést jelzi csökkenő sorrendben. Válassza ki az oszlopfejlécet a rendezési sorrend módosításához.

Szálak csoportokon belüli rendezése

A Szálak ablakban lévő csoportokon belüli szálak rendezéséhez először használja a Csoportosítás legördülő listát a csoportosítási kritériumok kiválasztásához. Ezután jelölje ki az oszlopfejlécet, hogy a csoportosított szálakat a kijelölt oszlop értékei szerint rendezze.

Az összes csoport kibontása vagy összecsukása

Az aktuális nézetben gyorsan megjelenítheti vagy elrejtheti az összes csoportosítást. A Szálak ablak eszköztárán válassza a Csoportok kibontása (dupla négyzet ikon plusz jellel) vagy Csoportok összecsukása (dupla négyzet ikon mínusz jellel).

Szálak keresése

A Szálak ablaktáblában kereshet a szálak között, és megkeresheti a látható táblaoszlopok adott tartalmát. A keresés során a Visual Studio megjeleníti azokat a szálsorokat, amelyek oszlopadatai megegyeznek a keresési sztringgel. A keresés a hívásverem tetején megjelenő szál helyét is megvizsgálja a Hely oszlopban.

Adott tartalom keresése szálakban

Több módon is kereshet szálakat adott tartalmakra. A Szálak ablak eszköztárában adja meg a keresett karakterláncot a Keresés mezőben, majd nyomja meg az Entert. A keresési sztringben megadhat betűket, számokat és speciális karaktereket, például <. Amikor a keresés befejeződött, a szálak ablak frissíti a táblázatot, hogy egyező találatokkal jelenjenek meg a szálak. A Visual Studio kiemeli a keresési kifejezésnek megfelelő példányokat. A normál szálnézethez való visszatéréshez válassza a Keresés mező melletti X ikont.

Kereshet egy korábban keresett karakterláncot is. Használja a Keresés legördülő menüt, és válasszon ki egy korábbi keresési kifejezést.

Keresés a teljes hívási veremben

Alapértelmezés szerint a teljes hívásverem nincs átvizsgálva. A Visual Studio csak a Szálak ablaktáblában látható szálakban keres egyezést.

Kiválaszthatja a teljes hívásveremet a kereséshez úgy, hogy rákattint a Hívásverem belefoglalása a keresésbe (listaelem ikon) opcióra a Szálak ablak eszköztárán. Ha a beállítás engedélyezve van, a listaelem ikonjának szegélye van.

Hívásveremek megjelenítése és váltás a hívási keretek között

A többszálas programokban minden szál saját hívásveremtel rendelkezik. A Szálak ablakban kényelmesen megtekintheti ezeket a veremeket.

Borravaló

Az egyes szálak hívásveremének vizuális megjelenítéséhez használja a Párhuzamos veremek ablakot.

Hívásverem megtekintése a szálhoz

A Szálak ablaktáblában keresse meg azt a szálat, amelynek a teljes hívásveremét meg szeretné vizsgálni. A Hely oszlopban kattintson a kibontás/összecsukás nyílra a szál pozíciójától balra. A hely kibővül a szál teljes hívásveremének megjelenítéséhez. Csak a hely megjelenítéséhez jelölje ki ismét a nyilat.

Az összes hívásverem megtekintése vagy összecsukása

Beállíthatja, hogy a Szálak ablakban mindig megjelenjenek-e a tábla összes szálának teljes hívásveremei. A Szálak ablak eszköztárán válassza a Hívásverem kibontása (doboz ikon plusz jellel) vagy Hívásverem összecsukása (doboz ikon mínusz szimbólummal).