Jak: używanie okna wątków
W wątków okna, można sprawdzać i pracować z wątków w aplikacji, która debugowania.
Wątków okno zawiera tabelę, gdzie każdy wiersz reprezentuje wątku w aplikacji.Domyślnie tabela zawiera listę wszystkich wątków w aplikacji, ale można filtrować listę, aby wyświetlić wątki, które zainteresowania.Każda kolumna zawiera różne typu informacji.Można również ukryć niektóre kolumny.Jeśli wyświetlane są wszystkie kolumny, wyświetlona następująca informacja, od lewej do prawej:
Kolumny flag, gdzie można oznaczyć wątek, do którego chcesz zwrócić szczególną uwagę.Informacje dotyczące flagi wątku, zobacz Jak: Flaga i Unflag wątków.
Kolumna aktywnych wątków gdzie żółta strzałka wskazuje aktywny wątku.Konspekt Strzałka wskazuje wątku, których wykonanie się do debugera.
ID kolumny, która zawiera numer identyfikacyjny dla każdego wątku.
Zarządzane identyfikator kolumna, która zawiera numery identyfikacyjne zarządzanych zarządzanych wątków.
Kategorii kolumny, która dzieli wątków jak wątki interfejsu użytkownika, remote procedure call obsługi lub wątków roboczych.Kategorii specjalnej identyfikuje wątku głównym aplikacji.
Nazwa kolumny, które identyfikują każdego wątku, według nazwy, jeśli ma on jednego lub jako < nazwa nr >.
Lokalizację kolumny, który wskazuje, w którym jest uruchomiony wątek.Można rozwinąć tej lokalizacji, aby wyświetlić pełne wywołanie stosu wątku.
Priorytet kolumny, które zawiera priorytet lub priorytet, który system został przypisany do każdego wątku.
Maski koligacji kolumny, która jest zwykle ukrytej kolumny zaawansowany.Ta kolumna zawiera maskę koligacji procesora dla każdego wątku.W systemie wieloprocesorowym maski koligacji Określa, które procesory, na których można uruchomić wątku.
Zawieszone licznik kolumna, która zawiera licznik zawieszone.Liczba ta określa, czy można uruchomić wątku.Zawieszone zliczania, zobacz "Zamrażanie i rozmrażanie wątków" w dalszej części tego tematu.
Nazwa procesu kolumny, który zawiera proces, do której należy każdy wątek.Ta kolumna może być przydatne podczas debugowania wiele procesów, ale zazwyczaj jest ukryty.
Aby wyświetlić okno wątków w trybie podział lub wykonywania
- Na debugowania menu, wskaż Windows, a następnie kliknij przycisk wątków.
Aby wyświetlić lub ukryć kolumnę
- Na pasku narzędzi u góry wątków okna, kliknij kolumny, zaznacz lub wyczyść pole wyboru Nazwa kolumny, którą chcesz wyświetlić lub ukryć.
Aby przełączyć aktywnych wątków
Wykonaj jedną z następujących czynności:
Kliknij dwukrotnie dowolny wątek.
Kliknij prawym przyciskiem myszy wątku, a następnie kliknij przycisk Przełączenie wątku.
Żółta strzałka obok nowego wątku aktywne.Szary obrys Strzałka identyfikuje wątek, których wykonanie się do debugera.
Grupowanie i sortowanie wątków
Grupowanie wątków, nagłówek, który pojawia się w tabeli dla każdej grupy.Nagłówek zawiera opis grupy, takie jak "Wątku roboczego" lub "Wątków bez flagi" i kontrola drzewa.Wątki Członkowskie każdej grupy są wyświetlane w obszarze nagłówka grupy.Jeśli chcesz ukryć wątków Członkowskich grupy, można użyć formantu drzewa Aby zwinąć grupy.
Ponieważ grupy ma pierwszeństwo przed sortowaniem, można grupowanie wątków według kategorii, na przykład i sortować je według Identyfikatora w ramach każdej kategorii.
Aby posortować wątków
Na pasku narzędzi u góry wątków okna, kliknij przycisk u góry dowolnej kolumny.
Wątki są obecnie posortowane według wartości w tej kolumnie.
Jeśli chcesz odwrócić kolejność sortowania, kliknij ponownie przycisk ten sam.
Wątki, które obecnie pojawił się na górze listy są wyświetlane na dole.
Do grupy wątków
- W wątków narzędzi okna, kliknij grupy przez listy, a następnie kliknij kryteria, które chcesz dodać grupę wątków przez.
Aby posortować wątki wewnątrz grupy
Na pasku narzędzi u góry wątków okna, kliknij grupie przez listy, a następnie kliknij kryteria, które chcesz dodać grupę wątków przez.
W wątków okna, kliknij przycisk u góry dowolnej kolumny.
Wątki są obecnie posortowane według wartości w tej kolumnie.
Aby rozwinąć lub zwinąć wszystkie grupy
- Na pasku narzędzi u góry wątków okna, kliknij Rozwiń grupy lub Zwiń grupy.
Wyszukiwanie określonych wątków
W Visual Studio 2012, można wyszukać wątków, które odpowiadają określony ciąg.Podczas wyszukiwania wątków w wątków okna, okno wyświetla wszystkie wątki, które pasuje do ciągu wyszukiwania w dowolnej kolumny.Te informacje zawierają lokalizacji wątku, która pojawia się na górze stosu wywołań w lokalizację kolumny.Domyślnie, stos wywołań pełne nie będzie przeszukiwana.
Aby wyszukiwać określonych wątków
Na pasku narzędzi u góry wątków okna, przejdź do wyszukiwania pole i albo:
Wpisz ciąg wyszukiwania, a następnie naciśnij klawisz ENTER.
- lub -
Kliknij obok listy rozwijanej wyszukiwania polu, a następnie wybierz ciąg wyszukiwania z poprzedniego wyszukiwania.
(Opcjonalnie) Aby dołączyć stos wywołań pełnego wyszukiwania, zaznacz Stos wyszukiwania.
Zamrażanie i rozmrażanie wątków
Zablokowanie wątku, system nie rozpoczęcia realizacji wątku, nawet jeśli zasoby są dostępne.
W kodzie macierzystym, zawiesić lub wznowić wątków przez wywołanie funkcji Windows SuspendThread i ResumeThread lub funkcje MFC CWinThread::SuspendThread i CWinThread::ResumeThread.Jeśli zadzwonisz SuspendThread lub ResumeThread, można zmienić zawieszone licznik, który pojawia się w wątków okno.Jednak jeśli zamrożenia lub odblokowania wątku macierzystego, nie zmienić count zawieszone.Z kodem macierzystym wątku nie można wykonać, chyba że jest rozmrożone i ma zawieszony równą zero.
W kodzie zarządzanym zamrażanie lub rozmrażania wątek zmienić count zawieszone.W kodzie zarządzanym mrożone wątek ma zawieszone liczba 1.Z kodem macierzystym mrożonych wątek ma zawieszone liczba 0, chyba, że wątek zostało zawieszone przez SuspendThread wywołania.
[!UWAGA]
Podczas debugowania wywołanie kodu macierzystego kodu zarządzanego kodu zarządzanego działa w tym samym wątku fizycznej jako kodu macierzystego, który go wywołał.Zawieszające lub zamrażania wątku macierzystego również zawiesza się kodu zarządzanego.
Aby zablokować lub odblokowania wykonania wątku
Na pasku narzędzi u góry wątków okna, kliknij Zamrozić wątki lub Rozmrażanie wątki.
Operacja ta dotyczy tylko tych wątków, które są zaznaczone w wątków okna.
Wyświetlanie oflagowanych wątków
Można oflagować wątek, który chcesz nadać szczególną oznaczając ikoną w wątków okna.Aby uzyskać więcej informacji, zobacz Jak: Flaga i Unflag wątków.W oknie wątków można wyświetlić wszystkie wątki lub oflagowane wątki.
Aby wyświetlić tylko oflagowane wątków
- Wybierz przycisk flagi w lewym górnym rogu wątków okna.
Wyświetlanie stosy wywołań wątku i przełączanie między ramkami
W programie wielowątkowe każdy wątek ma swój własny stos wywołań.Wątków okno zapewnia wygodny sposób, aby wyświetlić te stosy.
Aby wyświetlić stos wywołań wątku
W lokalizację kolumny, kliknij odwrócony trójkąt obok lokalizacji wątku.
Lokalizacja zostanie wyświetlona stos wywołań wątku.
Aby wyświetlić lub zwinąć stosy wywołań wszystkich wątków
- Na pasku narzędzi u góry wątków okna, kliknij Rozwiń stosy Call lub Zwiń wywołać stosy.
Zobacz też
Zadania
Instruktaż: Debugowanie aplikacji wielowątkowych