Aracılığıyla paylaş


Visual Studio hata ayıklayıcısında iş parçacıklarını görüntüleme (C#, Visual Basic, C++)

Visual Studio hata ayıklayıcısındaki İş Parçacıkları penceresi, hata ayıkladığınız uygulamadaki iş parçacıklarını incelemenize ve bunlarla çalışmanıza olanak tanır. Pencere, kodunuzda iş parçacıklarını gruplandırma, sıralama, bayraklama, dondurma, çözme ve arama yapmanın yanı sıra çağrı yığınlarını görüntüleme özellikleri sağlar.

İş Parçacıkları penceresi yalnızca Visual Studio hata ayıklayıcısı çalışırken kullanılabilir. Hata ayıklama oturumu sırasında pencereyi açmak için Hata Ayıkla>Windows>İş Parçacıklarıseçeneğini seçebilirsiniz.

Bu makalede C#, Visual Basic veya C++ programlarınızın İş Parçacıkları penceresiyle nasıl çalışıldığı açıklanır. Ancak, Paralel Yığınlar penceresindeki İş Parçacıkları görünümü genellikle hata ayıklama için daha yararlıdır. Daha fazla bilgi için bkz. İş Parçacıkları görünümünü kullanarak kilitlenme hatalarını ayıklama ve Paralel Yığınlar penceresinde iş parçacıklarını ve görevleri görüntüleme.

İş Parçacıkları pencere tablosunu keşfet

İş Parçacıkları penceresi, her satırın uygulamanızdaki ayrı bir iş parçacığına karşılık geldiği bir tablo sunar. Varsayılan görünümde, tablo uygulamanızdaki tüm iş parçacıklarını gösterir. Tablo ayarlarını yalnızca ilginizi çekebilecek iş parçacıklarını gösterecek şekilde yapılandırabilirsiniz. Tablo, iş parçacıklarını ayrıntılı olarak açıklamak için birden çok sütun sağlar. Sütun yerleşimini ayarlayabilir ve gereksiz sütunları gizleyebilirsiniz.

Aşağıdaki tabloda, İş Parçacıkları pencere tablosu için tüm kullanılabilir sütunlar açıklanır ve sütunun varsayılan görünümde görünür mü yoksa gizli mi olduğu gösterilir. Sütunlar, varsayılan tablo konumlarına göre soldan sağa listelenir.

Sütun Varsayılan Açıklama
Bayrak Görünür, etiketsiz Bu sütundaki kırmızı bayraklar, özel ilgi için işaretlenmiş konuları gösterir. Bir iş parçacığını işaretlemek (simge rengi kırmızıya dönüşür) veya işaretini kaldırmak (simge bayrak hatlarına dönüşür) için bayrağı seçin. Renkli bayrak simgesi, işaretli bir iş parçacığını tablodaki diğer iş parçacıklarından ayırt etmeye yardımcı olur. Daha fazla bilgi için bkz. Konuları bayrakla ve bayrağı kaldır.
Geçerli iş parçacığı Görünür, etiketsiz Bu sütundaki sarı ok simgesi, hata ayıklayıcıda çalışan uygulamadaki geçerli iş parçacığını gösterir. Bu sütundaki bir ok anahat simgesi, güncel olmayan bir iş parçacığı için geçerli hata ayıklayıcısı bağlamını gösterir.
Kimliği Görünür Her bir iş parçacığı için kimlik numarasını sağlar.
yönetilen kimlik Görünür Yönetilen iş parçacıkları için yönetilen kimlik numaralarını görüntüler.
Kategori Görünür İş parçacıkları kategorisini kullanıcı arabirimi iş parçacıkları, uzak yordam çağrı işleyicileri veya çalışan iş parçacıkları olarak gösterir. Özel bir kategori, uygulamanın ana iş parçacığını tanımlar.
Adı Görünür Her iş parçacığını adıyla veya <Ad Yok> iş parçacığının belirtilen adı yoksa tanımlar. Bir iş parçacığı artık mevcut olmadığında, iş parçacığı [İş Parçacığı Yok Edildi] etiketine sahiptir.
Konum Görünür İş parçacığının uygulama çağrı yığını içinde nerede çalıştığını gösterir. İş parçacığının tam çağrı yığınını görmek için açılır oka tıklayın. İş parçacığı artık mevcut olmadığında, konum <>kullanılamaz olarak etiketlenmiştir.
öncelik Gizli Sistem tarafından her iş parçacığına atanan önceliği veya öncelik sırasını görüntüler.
Benşim Maskesi Gizli Her iş parçacığı için işlemci ilişki maskesini gösterir. Çok işlemcili bir sistemde benşim maskesi, bir iş parçacığının üzerinde çalışabileceği işlemcileri belirler.
Askıya Alınan Sayım Gizli Askıya alınan sayıyı sağlar. Bu sayı, bir iş parçacığının çalışıp çalışamayacağını belirler. Daha fazla bilgi için bkz. iş parçacıklarını dondurma ve çözme.
İşlem Adı Gizli Her iş parçacığının ait olduğu işlemi görüntüler. Bu sütundaki veriler, birçok işlemde hata ayıklarken yararlı olabilir.
İşlem Kimliği Gizli Her bir iş parçacığının ait olduğu işlem kimliğini gösterir.
Aktarım Niteleyicisi Gizli Hata ayıklayıcının bağlı olduğu makineyi benzersiz olarak tanımlar.

Tablo sütunlarını gösterme ve gizleme

İş Parçacıkları pencere araç çubuğunda, Sütunlar açılır listesi mevcut sütunların listesini gösterir. Açılan listeyi genişletin ve tablodaki görünürlüğünü değiştirmek için bir sütun adı seçin. Görünür sütunlar listede onay işaretiyle gösterilir.

Özel dikkat için konuları bayrakla işaretle

Konuları özel dikkat göstermek için bayrak simgesini kullanın. İşaretli konular, Konular pencere tablosunda kırmızı bayrak simgesiyle gösterilir. Daha fazla bilgi için bkz. bayrak veiş parçacıklarını kaldırma.

Yalnızca işaretlenmiş konuları göster

İş Parçacıkları penceresini yalnızca işaretlenmiş olanları gösterecek şekilde filtreleyebilirsiniz. İş Parçacıkları pencere araç çubuğunda, Yalnızca Bayrak eklenmiş İş Parçacıklarını Göster (çift bayrak simgesi) öğesini seçin. Ctrl + 9 klavye kısayolunu da kullanabilirsiniz. Bu eylem yalnızca bayrak eklenmiş konular bulunduğunda kullanılabilir.

İplikleri dondurma ve çözme

Bir iş parçacığını dondurduysanız, kaynaklar kullanılabilir olsa bile sistem iş parçacığının yürütülmesini başlatmaz.

Yerel kodda, iş parçacıklarını askıya almak veya devam ettirmek için Windows işlevleri SuspendThread ve ResumeThread'i çağırabilirsiniz. MFC işlevlerini de CWinThread::SuspendThread ve CWinThread::ResumeThreadçağırabilirsiniz. SuspendThread veya ResumeThread işlevini çağırdığınızda, İş Parçacıkları penceresinde gösterilen askıya alınan sayı değişir. Yerel bir iş parçacığını dondurur veya çözerseniz, askıya alınan iş parçacığı sayısı değişmez. İş parçacığı çözülmediği ve askıya alınmış sıfır sayısı olmadığı sürece, iş parçacığı yerel kodda yürütülemez.

Yönetilen kodda, bir iş parçacığını dondurur veya çözerken askıya alınan sayı değişir. Yönetilen kodda bir iş parçacığını dondurduğunuzda, iş parçacığının askıya alınma sayısı 1 olur. Yerel kodda bir iş parçacığını dondurduğunuz zaman, SuspendThread çağrısını kullanmadığınız sürece askıya alınma sayısı 0'dır.

Not

Yerel koddan yönetilen koda yapılan bir çağrıda hata ayıkladığınızda, yönetilen kod çağıran yerel kodla aynı fiziksel iş parçacığında çalışır. Yerel iş parçacığının askıya alınması veya dondurulması, yönetilen kodun da dondurulmasına neden olur.

Seçili iş parçacıkları için yürütmeyi değiştir

Bir veya daha fazla iş parçacığının yürütmesini dondurabilir veya çalışmasına izin verebilirsiniz. İş Parçacıkları penceresinde yürütme durumunu güncelleştirmek istediğiniz iş parçacıklarını seçin. İş Parçacıkları pencere araç çubuğunda, İş Parçacıklarını Dondur (yürütme simgesini duraklat) veya İş Parçacıklarını Çöz (yeşil yürütme simgesi) seçin. Eylem yalnızca seçili iş parçacıkları için geçerlidir. Dondurma ve çözme işlemleri, her iş parçacığı için sağ tıklama bağlam menüsünde de mevcuttur.

Geçerli iş parçacığını değiştir

İş Parçacıkları pencere tablosundaki sarı ok simgesi geçerli iş parçacığını (ve yürütme işaretçisinin konumunu) gösterir. Özgün geçerli iş parçacığı işaretçisi de kalır (bir ok anahattı simgesiyle gösterilir).

Başka bir iş parçacığına geçme

Hata ayıklayıcıda geçerli iş parçacığını değiştirmenin iki yolu vardır. İş Parçacıkları tablosu penceresindeki herhangi bir iş parçacığına çift tıklayarak onu geçerli iş parçacığı yapabilirsiniz. Ayrıca bir iş parçacığına sağ tıklayıp İlgili İş Parçasına Geçseçeneğini belirleyebilirsiniz.

Konulara gruplandırma ve sıralama uygulama

kullanılabilir sütunlarla aynı ölçütleri kullanarak İş Parçacıkları pencere tablosundaki iş parçacıklarını gruplandırabilirsiniz. Tüm ölçütler, ilgili sütunun geçerli görünümde görünür olup olmadığına bakılmaksızın gruplandırma için her zaman kullanılabilir. Tablo için yalnızca bir gruplandırma seçebilirsiniz.

İş parçacıklarını gruplandırdığınızda, tabloda her grup için bir başlık görüntülenir. Başlık, gruptaki üye sayısıyla birlikte bir grup açıklaması içerir. Ad göre gruplandırırsanız, Çalışan İş Parçacığı veya Bayraklanmamış İş Parçacıklarıgibi başlıklara sahip gruplandırmalar görebilirsiniz. Her grup başlığının yanında bir genişlet/daralt ok simgesi görüntülenir.

Gruplandırma ölçütlerini uyguladıktan sonra, İş Parçacıkları pencere tablosunun görünümü, her grubun kendi başlığı altındaki üye iş parçacıklarını gösterecek şekilde güncelleştirilir. Geçerli görünümde üyeleri göstermek veya gizlemek için grubun genişlet/daralt ok simgesini kullanın.

İş Parçacıkları pencere tablosundaki iş parçacıklarına tek bir sıralama ölçütü de uygulayabilirsiniz. Gruplandırma, sıralamadan önceliklidir. Örneğin, iş parçacıklarını kategori göre gruplandırabilir ve ardından her Kategoriiçindeki kimliğine göre sıralayabilirsiniz.

Tablodaki konuları gruplandır

İş Parçacıkları pencere çubuğunda, Gruplandırma ölçütleri açılır listesini genişletin ve iş parçacıklarını gruplandırmak için ölçüt seçin. Ayrıca, Gruplandırma ölçütü açılan listesinde Hiçbiri öğesini seçerek, uygulanan gruplandırmayı kaldırabilirsiniz.

Tablodaki iş parçacıklarını sıralama

İş Parçacıkları pencere tablosundaki iş parçacıklarına sıralama uygulamak için, tablonun üst kısmındaki Ad veya Kimliğigibi sütun başlıklarını seçersiniz.

Bir sütun başlığı seçtiğinizde, İş Parçacıkları pencere tablosunun görünümü, iş parçacıklarını seçili sütundaki değerlere göre sıralanmış olarak gösterecek şekilde güncelleştirilir. Seçili sütunda bir yukarı/aşağı ok simgesi de gösterilir. Yukarı ok simgesi, seçili sütuna göre artan düzende sıralamayı gösterir. Aşağı ok simgesi, seçili sütuna göre azalan düzende sıralamayı gösterir. Sıralama düzenini değiştirmek için sütun başlığını seçin.

Gruplar içindeki konuları sıralama

İş Parçacıkları penceresinde grupların içindeki iş parçacıklarını sıralamak için, önce Grupla açılan listesini kullanarak gruplandırma ölçütlerini uygulayın. Ardından, gruplandırılmış iş parçacıklarını seçili sütundaki değerlere göre sıralamak için sütun başlığını seçin.

Tüm grupları genişlet veya daralt

Geçerli görünümdeki tüm gruplandırmaları göstermenin veya gizlemenin hızlı bir yolu vardır. İş Parçacıkları pencere araç çubuğunda Grupları genişlet (artı simgesi içeren çift kutu simgesi) veya Grupları daralt (eksi simgesi içeren çift kutu simgesi) seçin.

Konuları ara

İş Parçacıkları pencere tablosunda iş parçacıklarında arama yapabilir ve görünür tablo sütunlarından herhangi birinde belirli içeriği arayabilirsiniz. Aramayı yaptığınızda Visual Studio, arama dizesiyle eşleşen sütun verilerini içeren iş parçacığı satırlarını görüntüler. Arama ayrıca Konum sütunundaki çağrı yığınının en üstünde görünen iş parçacığı konumunu da tarar.

Konularda belirli içeriği arama

Belirli içerikler için konularda arama yapmanın çeşitli yolları vardır. İş Parçacıkları pencere araç çubuğunda, aranacak dizeyi Arama kutusuna girin ve Girin seçin. Arama dizenizde harfler, sayılar ve < gibi özel karakterler belirtebilirsiniz. Arama tamamlandığında, İş Parçacıkları penceresi tabloyu eşleşen sonuçlara sahip iş parçacıklarını gösterecek şekilde güncelleştirir. Visual Studio, arama dizenizle eşleşen belirli örnekleri vurgular. Normal iş parçacığı görünümüne dönmek için Ara kutusunun yanındaki X simgesini seçin.

Daha önce aradığınız bir dizeyi de arayabilirsiniz. Arama açılan kutusunu kullanın ve önceki bir arama terimini seçin.

Tam çağrı yığınında arama

Varsayılan olarak, tam çağrı yığını aranmıyor. Visual Studio, yalnızca İş Parçacıkları penceresi tablosunda görünen iş parçacıklarında bir eşleşme arar.

Çağrı yığınlarını aramaya dahil et (liste öğesi simgesi) seçeneğini İş Parçacıkları penceresi araç çubuğunda seçerek tam çağrı yığınını ekleyebilirsiniz. Seçenek etkinleştirildiğinde, liste öğesi simgesinin kenarlıkları vardır.

Çağrı yığınlarını görüntüleme ve çerçeveler arasında geçiş yapma

Çok iş parçacıklı bir programda her iş parçacığının kendi çağrı yığını vardır. İş Parçacıkları penceresi, bu yığınları görüntülemeyi kolaylaştırır.

Öneri

Her iş parçacığı için çağrı yığınının görsel bir gösterimi için paralel yığınlar penceresini kullanın.

İş parçacığı için çağrı yığınını görüntüleme

İş Parçacıkları pencere tablosunda, tam çağrı yığınını incelemek istediğiniz iş parçacığını bulun. Konum sütununda, düğüm konumunun solundaki genişletme/daraltma okunu seçin. İş parçacığının tam çağrı yığınını göstermek için konum genişletilir. Yalnızca konumu göstermek için oku yeniden seçin.

Tüm çağrı yığınlarını görüntüleme veya daraltma

İş Parçacıkları penceresinin tablodaki tüm iş parçacıkları için her zaman tam çağrı yığınlarını gösterip göstermeyeceğini denetleyebilirsiniz. İş Parçacıkları pencere araç çubuğunda, Çağrı yığınlarını genişlet (artı simgesi içeren kutu simgesi) veya Çağrı yığınlarını daralt (eksi simgesi içeren kutu simgesi) seçin.