Wskazówki: Debugowanie aplikacji wielowątkowych
Visual Studio 2012zapewnia ulepszone wątków okno i innych użytkowników interfejsu ulepszeń, aby ułatwić debugowanie aplikacji wielowątkowych.W tym instruktażu zajmuje tylko kilka minut, ale jego wypełnieniu będzie zapoznanie się z nowych funkcji interfejsu debugowania aplikacji wielowątkowych.
Aby rozpocząć w tym instruktażu, musisz projektu aplikacji wielowątkowych.Wykonaj kroki wymienione tu do utworzenia tego projektu.
Aby utworzyć projekt Instruktaż
Na pliku menu, wybierz polecenie Nowy i kliknij przycisk Projekt.
Nowy projekt pojawi się okno dialogowe.
W Typu projektus kliknij w wybranym języku: programu Visual Basic, Visual C#, lub Visual C++.
W szablonów wybierz Aplikacji konsoli lub CLR Console Application.
W Nazwa polu wpisz nazwę MyThreadWalkthroughApp.
Click OK.
Pojawi się nowy projekt konsoli.Podczas tworzenia projektu zostanie wyświetlony plik źródłowy.W zależności od języka, że wybrana plik źródłowy może mieć nazwę Module1.vb, plik Program.cs lub MyThreadWalkthroughApp.cpp
Usuń kod, który pojawia się w pliku źródłowym i zastąpić przykładowy kod, która pojawia się w sekcji "Tworzenie wątku" tematu Tworzenie wątków i przekazywanie danych w czasie rozpoczęcia.
Na pliku menu, kliknij Zapisz wszystkie.
Aby rozpocząć Instruktaż
W oknie źródła odszukaj następujący kod:
Thread.Sleep(3000) Console.WriteLine(
Thread.Sleep(3000);
Console.WriteLine();
Thread::Sleep(3000);
Console.WriteLine();
Aby rozpocząć debugowanie
Kliknij prawym przyciskiem myszy Console.WriteLine instrukcji, punkt przerwania i kliknij przycisk Wstaw punkt przerwania.
W marginesu na oprawę po lewej stronie okna źródła pojawia się czerwony kulki.Oznacza to, że punkt przerwania ustawiono obecnie w tej lokalizacji.
Na debugowania menu, kliknij Start Debugging.
Debugowania uruchamia, Twoje uruchomieniu aplikacji konsoli, aby uruchomić, a następnie zatrzymuje na punkt przerwania.
Jeśli okno aplikacji konsoli w tym miejscu ma fokus, kliknij w Visual Studio okna, aby przywrócić fokus do Visual Studio.
W oknie źródła zlokalizuj wiersz zawierający następujący kod:
Thread.Sleep(5000)
Thread.Sleep(3000);
Thread::Sleep(3000);
Odnajdowanie znacznik wątku
Kliknij prawym przyciskiem myszy w wątków okna, kliknij przycisk Pokaż wątki w źródle.
Spójrz na oprawę po lewej stronie okna.Na tej linii będzie widoczna ikona, podobny do dwóch wątków szmatką.Jeden wątek jest czerwony, a drugi jest niebieski.Wątek znacznik wskazuje, że wątek jest zatrzymany w tej lokalizacji.Ewentualnie wątek jest zatrzymywany w tej lokalizacji.
Umieść wskaźnik nad znacznik wątku.DataTip, który pojawia się.DataTip mówi nazwa i wątek numer ID dla każdego zatrzymanego wątku.W takim przypadku istnieje tylko jeden wątek, którego nazwa jest prawdopodobnie <noname>.
Kliknij prawym przyciskiem myszy znacznik wątku.Uwaga opcji menu skrótów.
Ta ikona jest znacznik wątku:
Wątki flagami i Unflagging
W Visual Studio 2008, można oflagować wątków, które chcesz nadać szczególną uwagę.Oflagowanie wątków jest dobrym sposobem śledzić wątki ważne i Ignoruj wątki, które nie dbają o.
Aby oflagować wątków
Na widoku menu, wskaż Paski narzędzi.
Upewnij się, że Debugowania lokalizacji pasek narzędzi jest zaznaczony.
Przejdź do Debugowania lokalizacji narzędzi i kliknij przycisk wątku listy.
[!UWAGA]
Ten pasek narzędzi może rozpoznawać przez trzy widocznym listy: proces, wątku, i Stosu ramki.
Należy zauważyć, jak wiele wątków są wyświetlane na liście.
Powróć do okna źródło i kliknij prawym przyciskiem myszy wątku ponownie znacznik.
W menu skrótów wskaż polecenie Flaga, a następnie kliknij nazwę wątku i numer identyfikacyjny.
Powróć do Debugowania lokalizacji narzędzi i kliknij przycisk wątku ponownie.
Oflagowane wątek pojawia się na liście teraz.Znajdującą się po prawej stronie przycisku Flaga wątku listy.Ikona flagi na przycisku został nieaktywne przed.Obecnie jest jasny, stałe czerwony.
Umieść wskaźnik nad ikonę flagi.
Pojawi się wyskakujące okienko.To okienko wyskakujące informuje jakiego trybu wątku lista znajduje się w: Pokaż tylko oflagowane wątki.
Kliknij odpowiedni przycisk flagi, aby przełączyć się do Pokaż wszystkie wątki tryb.
Kliknij wątku ponownie i sprawdź, czy teraz widzisz wszystkie wątki ponownie.
Kliknij odpowiedni przycisk flagi, aby przełączyć się do Pokaż tylko wątki flagę.
Na debugowania menu, wskaż Windows i kliknij przycisk wątków.
Wątków okno.Jeden wątek został dołączony do niej ikonę flagi widocznym.
W oknie źródła prawym przyciskiem myszy znacznik wątku ponownie.
Należy zauważyć, jakie opcje są teraz dostępne w menu skrótów.Zamiast Flaga, patrz teraz Unflag.Nie klikaj Unflag.
Przejdź do następnej procedury, o unflag wątków.
Aby unflag wątków
Na wątków okna, kliknij prawym przyciskiem myszy wiersz odpowiadający oflagowane wątku.
Zostanie wyświetlone menu skrótów.Ma opcje, aby Unflag i Unflag wszystkich.
Aby unflag wątku, kliknij przycisk Unflag.
Kliknij ikonę czerwona flaga.
Spójrz na Debugowania lokalizacji ponownie paska narzędzi.Przycisk flaga jest wygaszony ponownie.Unflagged jest tylko oflagowane wątku.Ponieważ nie istnieją żadne wątki oflagowane, pasek narzędzi ma powrócił do Pokaż wszystkie wątki tryb.Kliknij wątku listę, a następnie sprawdź, czy można zobaczyć wszystkie wątki.
Powróć do wątków okno i zbadać kolumny informacji.
Na górze każdej kolumny większość przycisków ma tytuły, które identyfikują kolumny.Jednak pierwsza kolumna po lewej stronie nie ma tytułu.Zamiast tego ma ikony konspekt flagi.Można zauważyć ten sam kontur w każdym wierszu listy wątków.Konspekt oznacza, że wątek jest bez flagi.
Kliknij przycisk kontury flagi dla dwóch wątków, drugi i trzeci od dołu listy.
Ikony flag stają się czerwony, zamiast pustego kontury.
Kliknij przycisk u góry kolumny flag.
Kolejność listy wątków zmianie po kliknięciu przycisku.Lista wątków jest teraz sortowane z oflagowane wątków na wierzchu.
Ponownie kliknij przycisk u góry kolumny flag.
Ponownie zmieniła się kolejność sortowania.
Więcej informacji na temat okna wątków
Aby dowiedzieć się więcej o oknie wątków
W wątków okna, zbadać w trzeciej kolumnie z lewej strony.Przycisk u góry tej kolumny mówi ID.
Click ID.
Lista wątek teraz jest sortowana według numeru ID wątku.
Kliknij prawym przyciskiem myszy dowolny wątek na liście.W menu skrótów kliknij polecenie wyświetlacz.
Format liczb identyfikator wątku zostanie zmieniony.
Umieść wskaźnik myszy nad dowolnym wątku na liście.
Po chwilowym opóźnienia pojawi się DataTip.Pokazuje on stosu wywołań częściowego dla wątku.
Szukaj w czwartej kolumnie z lewej strony, która jest oznaczona kategorii.Wątki są klasyfikowane na kategorie.
Pierwszy wątek w procesie tworzony jest zwany wątkiem głównym.Zlokalizuj go na liście wątku.
Kliknij prawym przyciskiem myszy w głównym wątku, a następnie kliknij przycisk Przełączenie wątku.
Zostanie wyświetlone okno dialogowe z ostrzeżeniem.To oznacza, że Visual Studio nie może wyświetlić kod źródłowy dla wątku głównego.
Click OK.
Spójrz na Stos okna i Debugowania lokalizacji paska narzędzi.
Zawartość Stos okno uległy zmianie.
Przełączanie aktywnych wątków
Aby przełączyć wątków
W wątków okna, zbadania drugiej kolumnie z lewej strony.Przycisk u góry tej kolumny nie ma tekstu ani ikony.Ta kolumna jest Wątku Active kolumny.
Spójrz na Wątek Active kolumny i zawiadomienia, że jeden wątek ma żółta strzałka.Jest to wskaźnik wątek active.
Zanotuj numer ID wątku gdzie znajduje się wskaźnik aktywnych wątków.Przeniesie wskaźnik aktywnych wątków do innego wątku, ale należy go umieścić ponownie po zakończeniu.
Kliknij prawym przyciskiem myszy inny wątek, a następnie kliknij przycisk Przełączenie wątku.
Spójrz na Stos okna w oknie źródła.Zawartość uległy zmianie.
Spójrz na Debugowania lokalizacji paska narzędzi.Active wątek został zmieniony, zbyt.
Przejdź do Debugowania lokalizacji paska narzędzi.Kliknij wątku polu i wybrać inny wątek z listy rozwijanej.
Spójrz na wątków okna.Wskaźnik active wątek został zmieniony.
W oknie źródła kliknij prawym przyciskiem myszy znacznik wątku.W menu skrótów wskaż polecenie przełącznika i kliknij numer ID/Nazwa wątku.
Teraz przejrzane trzy sposoby zmiany aktywnego wątku: przy użyciu wątków okna, wątku polu w Debugowania lokalizacji narzędzi i wskaźnik wątku w oknie źródła.
Wskaźnik wątku można przełączać tylko do wątków, które są zatrzymane w określonej lokalizacji.Za pomocą wątków okna i Debugowania lokalizacji paska narzędzi, można przełączyć się do żadnego wątku.
Zamrażanie i rozmrażanie wykonywanie wątków
Blokowanie i odblokowywanie wątków
W wątków okna, kliknij prawym przyciskiem myszy dowolny wątek, a następnie kliknij przycisk zamrozić.
Przyjrzyj się kolumnie aktywnych wątków.Para pionowe paski obecnie występują.Tymi dwoma pasami wskazują, że wątek jest zamrożone.
Spójrz na zawieszenia kolumny.Licznik wstrzymania wątku jest teraz 1.
Kliknij prawym przyciskiem myszy mrożonych wątku, a następnie kliknij przycisk rozmrażanie.
Kolumna aktywnych wątków i zawieszenia zmiana kolumny.
Zobacz też
Zadania
Porady: przełączanie na inny wątek w trakcie debugowania