Paralel Yığınlar penceresinde iş parçacıklarını ve görevleri görüntüleme (C#, Visual Basic, C++)

Paralel Yığınlar penceresi, çok iş parçacıklı uygulamalarda hata ayıklamak için kullanışlıdır. Birkaç görünümü vardır:

Paralel Yığınlar penceresini kullanma

Paralel Yığınlar penceresini açmak için bir hata ayıklama oturumunda olmanız gerekir. Windows>Paralel Yığınlarında Hata Ayıklama'ya>tıklayın.

Araç çubuğu denetimleri

Paralel Yığınlar penceresinde aşağıdaki araç çubuğu denetimleri bulunur:

Screenshot of Toolbar in Parallel Stacks window.

Simge Denetim Açıklama
Threads/Tasks combo box /İş Parçacıkları Görevleri birleşik giriş kutusu Görünümü iş parçacıklarının çağrı yığınları ve görev yığınları arasında değiştirir. Daha fazla bilgi için bkz . Görevler görünümü ve İş Parçacıkları görünümü.
Show Only Flagged icon Yalnızca Bayrak eklenmiş göster Yalnızca GPU İş Parçacıkları penceresi ve Paralel İzleme penceresi gibi diğer hata ayıklayıcı pencerelerinde bayrak eklenmiş iş parçacıkları için çağrı yığınlarını gösterir.
Toggle Method View icon Yöntem Görünümünü Değiştir Çağrı yığını görünümleri ile Yöntem Görünümü arasında geçiş yapar. Daha fazla bilgi için bkz . Yöntem Görünümü.
Auto Scroll to Current icon Geçerli Yığın Çerçevesine Otomatik Kaydırma Geçerli yığın çerçevesinin görünümde olması için grafiği otomatik olarak keşfeder. Bu özellik, geçerli yığın çerçevesini diğer pencerelerden değiştirdiğinizde veya büyük grafiklerde yeni bir kesme noktasına bastığınızda kullanışlıdır.
Toggle Zoom icon Yakınlaştırma Denetimini Aç/Kapat Pencerenin sol tarafındaki yakınlaştırma denetimini gösterir veya gizler.

Yakınlaştırma denetiminin görünürlüğünden bağımsız olarak, Ctrl tuşuna basıp fare tekerleğini döndürerek veya yakınlaştırmak için Ctrl+Shift++ ve uzaklaştırmak için Ctrl+Shift tuşlarına-+ basarak da yakınlaştırabilirsiniz.

Screenshot of Toolbar in Parallel Stacks window 2022.

Simge Denetim Açıklama
Threads/Tasks combo box /İş Parçacıkları Görevleri birleşik giriş kutusu Görünümü iş parçacıklarının çağrı yığınları ve görev yığınları arasında değiştirir. Daha fazla bilgi için bkz . Görevler görünümü ve İş Parçacıkları görünümü.
Filter icon Filtre Denetimi Yalnızca ilgilendiğiniz belirli iş parçacıkları kümesi için çağrı yığınlarını gösterir.
Show Only Flagged icon Yalnızca Bayrak eklenmiş göster Yalnızca GPU İş Parçacıkları penceresi ve Paralel İzleme penceresi gibi diğer hata ayıklayıcı pencerelerinde bayrak eklenmiş iş parçacıkları için çağrı yığınlarını gösterir.
Toggle Method View icon Yöntem Görünümünü Değiştir Çağrı yığını görünümleri ile Yöntem Görünümü arasında geçiş yapar. Daha fazla bilgi için bkz . Yöntem Görünümü.
Auto Scroll to Current icon Geçerli Yığın Çerçevesine Otomatik Kaydırma Geçerli yığın çerçevesinin görünümde olması için grafiği otomatik olarak keşfeder. Bu özellik, geçerli yığın çerçevesini diğer pencerelerden değiştirdiğinizde veya büyük grafiklerde yeni bir kesme noktasına bastığınızda kullanışlıdır.
Toggle Zoom icon Yakınlaştırma Denetimini Aç/Kapat Pencerenin sol tarafındaki yakınlaştırma denetimini gösterir veya gizler.

Yakınlaştırma denetiminin görünürlüğünden bağımsız olarak, Ctrl tuşuna basıp fare tekerleğini döndürerek veya yakınlaştırmak için Ctrl+Shift++ ve uzaklaştırmak için Ctrl+Shift tuşlarına-+ basarak da yakınlaştırabilirsiniz.
Search icon Arama Denetimi Bu özellik sayesinde yığın çerçeveleri arasında kolayca arama yapabilir ve ardından bu sonuçlar arasında gezinmek için okları kullanabilirsiniz.
Save icon Denetimi Kaydet Paralel yığın penceresindeki içeriği görüntü olarak kaydetmenizi/dışarı aktarmanızı sağlar.
External Code icon Dış Kod Denetimini Göster Bu özelliği kullanarak, dış kod/kitaplıklarda yığınları gösterebilir/gizleyebilirsiniz.

Yığın Çerçevesi simgeleri

Aşağıdaki simgeler tüm görünümlerdeki etkin ve geçerli yığın çerçeveleri hakkında bilgi sağlar:

Simge Açıklama
Yellow arrow Geçerli iş parçacığının geçerli konumunu (etkin yığın çerçevesi) gösterir.
Threads icon Geçerli olmayan bir iş parçacığının geçerli konumunu (etkin yığın çerçevesi) gösterir.
Green arrow Geçerli yığın çerçevesini (geçerli hata ayıklayıcı bağlamı) gösterir. Yöntem adı göründüğü her yerde kalındır.
Simge Açıklama
Yellow arrow Geçerli iş parçacığının geçerli konumunu (etkin yığın çerçevesi) gösterir.
Threads icon Geçerli olmayan bir iş parçacığının geçerli konumunu (etkin yığın çerçevesi) gösterir.
Green arrow Geçerli yığın çerçevesini (geçerli hata ayıklayıcı bağlamı) gösterir. Yöntem adı göründüğü her yerde kalındır.
Status Error Geçerli yığın çerçevesinin Kilitlenme gibi Kritik durum uyarısına sahip olduğunu gösterir.
Status Excluded Kilitlenme düğümünü gösterir.
Status Information Geçerli yığın çerçevesinin Beklemede, Kilitte bekleniyor, sahip olduğu vb. ek bilgilere sahip olduğunu gösterir.
Status Blocked Geçerli görevin engellenmiş/bekleme durumunda olduğunu vb. gösterir.
Status Running Çalışmakta olan görevin olduğunu gösterir.

Bağlam menüsü öğeleri

İş Parçacıkları görünümünde veya Görevler görünümünde bir yönteme sağ tıkladığınızda aşağıdaki kısayol menü öğeleri kullanılabilir. Son altı öğe, Çağrı Yığını penceresindekiyle aynıdır.

Screenshot of Shortcut menu in Parallel Stacks window.

Menü Öğesi Açıklama
Bayrak Seçili öğeye bayrak ekler.
Unflag Seçili öğeyi açar.
Dondurmak Seçili öğeyi donduruyor.
Çözülmüş Seçili öğeyi çözer.
Çerçeveye Geç Çağrı Yığını penceresindeki ilgili menü komutuyla aynıdır. Ancak, Paralel Yığınlar penceresinde bir yöntem birkaç karede olabilir. Bu öğenin alt menüsünde istediğiniz çerçeveyi seçebilirsiniz. Yığın çerçevelerinden biri geçerli iş parçacığındaysa, bu çerçeve alt menüde varsayılan olarak seçilir.
Göreve Git veya İş Parçacığına Git Görev veya İş Parçacıkları görünümüne geçer ve aynı yığın çerçevesini vurgulu tutar.
Kaynak Koduna Git Kaynak kod penceresinde ilgili konuma gider.
Ayrıştırmaya Git Ayrıştırma penceresinde ilgili konuma gider.
Dış Kodu Göster Dış kodu gösterir veya gizler.
Onaltılık Ekran Ondalık ve onaltılık görünüm arasında geçiş yapar.
Kaynakta İş Parçacıklarını Göster Kaynak kod penceresinde iş parçacığının konumunu bayrakla işaretler.
Sembol Yükleme Bilgileri Simge Yükleme Bilgileri iletişim kutusunu açar.
Simge Ayarlar Simge Ayarlar iletişim kutusunu açar.

Screenshot of Shortcut menu in Parallel Stacks window 2022.

Menü Öğesi Açıklama
Kopyala Seçili öğeyi kopyalayın.
Aşağıdaki Tüm Çerçeveleri Seç Seçili yığının altındaki tüm çerçeveleri seçer.
Bayrak Seçili öğeye bayrak ekler.
Unflag Seçili öğeyi açar.
Dondurmak Seçili öğeyi donduruyor.
Çözülmüş Seçili öğeyi çözer.
Çerçeveye Geç Çağrı Yığını penceresindeki ilgili menü komutuyla aynıdır. Ancak, Paralel Yığınlar penceresinde bir yöntem birkaç karede olabilir. Bu öğenin alt menüsünde istediğiniz çerçeveyi seçebilirsiniz. Yığın çerçevelerinden biri geçerli iş parçacığındaysa, bu çerçeve alt menüde varsayılan olarak seçilir.
Göreve Git veya İş Parçacığına Git Görev veya İş Parçacıkları görünümüne geçer ve aynı yığın çerçevesini vurgulu tutar.
Kaynak Koduna Git Kaynak kod penceresinde ilgili konuma gider.
Ayrıştırmaya Git Ayrıştırma penceresinde ilgili konuma gider.
Dış Kodu Göster Dış kodu gösterir veya gizler.
Onaltılık Ekran Ondalık ve onaltılık görünüm arasında geçiş yapar.
Kaynakta İş Parçacıklarını Göster Kaynak kod penceresinde iş parçacığının konumunu bayrakla işaretler.
Sembol Yükleme Bilgileri Simge Yükleme Bilgileri iletişim kutusunu açar.
Simge Ayarlar Simge Ayarlar iletişim kutusunu açar.

İş parçacıkları görünümü

İş Parçacıkları görünümünde, geçerli iş parçacığının yığın çerçevesi ve çağrı yolu mavi renkle vurgulanır. İş parçacığının geçerli konumu sarı okla gösterilir.

Geçerli yığın çerçevesini değiştirmek için farklı bir yönteme çift tıklayın. Bu, seçtiğiniz yöntemin geçerli iş parçacığının mı yoksa başka bir iş parçacığının mı parçası olduğuna bağlı olarak geçerli iş parçacığını da değiştirebilir.

İş Parçacıkları görünümü grafiği pencereye sığmayacak kadar büyük olduğunda, pencerede bir Kuş Bakışı Görünümü denetimi görüntülenir. Grafiğin farklı bölümlerine gitmek için denetimdeki çerçeveyi taşıyabilirsiniz.

Aşağıdaki çizimde, Main'dan Yönetilenden Yerele kod geçişine giden bir iş parçacığı gösterilmektedir. Geçerli yöntemde altı iş parçacığı vardır. Biri Thread.Sleep'a, diğeri Console.WriteLine'a ve ardından SyncTextWriter.WriteLine'a devam eder.

Screenshot of Threads view in Parallel Stacks window.

Aşağıdaki tabloda İş Parçacıkları görünümünün ana özellikleri açıklanmaktadır:

Çıkma Öğe adı Açıklama
1 Çağrı yığını segmenti veya düğümü Bir veya daha fazla iş parçacığı için bir dizi yöntem içerir. Çerçeveye bağlı ok çizgisi yoksa, çerçeve iş parçacıkları için tüm çağrı yolunu gösterir.
2 Mavi vurgu Geçerli iş parçacığının çağrı yolunu gösterir.
3 Ok çizgileri İş parçacıkları için çağrı yolunun tamamını oluşturmak için düğümleri Bağlan.
4 Düğüm üst bilgisi Düğüm için işlem ve iş parçacığı sayısını gösterir.
5 Metot Aynı yöntemdeki bir veya daha fazla yığın çerçevesini temsil eder.
6 Yöntemde araç ipucu Bir yöntemin üzerine geldiğinizde görüntülenir. İş Parçacıkları görünümünde araç ipucu, İş Parçacıkları penceresine benzer bir tabloda tüm iş parçacıklarını gösterir.

Aşağıdaki çizimde, Main'dan Yönetilenden Yerele kod geçişine giden bir iş parçacığı gösterilmektedir. Geçerli yöntemde beş iş parçacığı vardır. Biri ServerClass.InstanceMethod'a, diğeri Worker.Thread.Start'a ve ardından StartupHook.Initialize.AnonymousMethod'a devam eder.

Screenshot of Threads view in Parallel Stacks window 2022.

Aşağıdaki tabloda İş Parçacıkları görünümünün ana özellikleri açıklanmaktadır:

Çıkma Öğe adı Açıklama
1 Çağrı yığını segmenti veya düğümü Bir veya daha fazla iş parçacığı için bir dizi yöntem içerir. Çerçeveye bağlı ok çizgisi yoksa, çerçeve iş parçacıkları için tüm çağrı yolunu gösterir.
2 Mavi vurgu Geçerli iş parçacığının çağrı yolunu gösterir.
3 Ok çizgileri İş parçacıkları için çağrı yolunun tamamını oluşturmak için düğümleri Bağlan.
4 Düğüm üst bilgisi Düğüm için işlem/iş parçacığı sayısını, iş parçacığı adını ve iş parçacığı kimliğini gösterir.
5 Metot Aynı yöntemdeki bir veya daha fazla yığın çerçevesini temsil eder.
6 Yöntemde araç ipucu Bir yöntemin üzerine geldiğinizde görüntülenir. İş Parçacıkları görünümünde araç ipucu, İş Parçacıkları penceresine benzer bir tabloda tüm iş parçacıklarını gösterir.

Görevler görünümü

Uygulamanız paralelliği ifade etmek için nesneleri (yönetilen kod) veya nesneleri (yerel kod) kullanıyorsa System.Threading.Tasks.Task Görevler görünümünü kullanabilirsiniz.task_handle Görevler görünümü, iş parçacıkları yerine görevlerin çağrı yığınlarını gösterir.

Görevler görünümünde:

  • Görevleri çalıştırmayan iş parçacıklarının çağrı yığınları gösterilmez.
  • Görevleri çalıştıran iş parçacıklarının çağrı yığınları, görevler için en uygun çerçeveleri göstermek üzere üst ve alt kısımda görsel olarak kırpılır.
  • Bir iş parçacığında birkaç görev olduğunda, bu görevlerin çağrı yığınları ayrı düğümlerde gösterilir.

Çağrı yığınının tamamını görmek için, yığın çerçevesine sağ tıklayıp İş Parçacığına Git'i seçerek İş Parçacıkları görünümüne geri dönün.

Aşağıdaki çizimde , en üstte İş Parçacıkları görünümü ve en altta ilgili Görevler görünümü gösterilmektedir.

Screenshot of Threads and Tasks views.

Screenshot of Tasks view in Parallel Stacks window.

Ek bilgiler içeren bir araç ipucu göstermek için bir yöntemin üzerine gelin. Görevler görünümünde araç ipucu, Görevler penceresine benzer bir tablodaki tüm görevleri gösterir.

Aşağıdaki görüntüde, üstteki İş Parçacıkları görünümünde bir yöntemin araç ipucu ve alttaki ilgili Görevler görünümü gösterilir.

Screenshot of Threads and Tasks tooltips.

Screenshot of Threads and Tasks tooltips.

Yöntem Görünümü

İş Parçacıkları görünümünden veya Görevler görünümünden, araç çubuğundaki Yöntem Görünümünü Değiştir simgesini seçerek grafiği geçerli yöntemde özetleyebilirsiniz. Yöntem Görünümü , geçerli yöntem tarafından çağrılan veya çağrılan tüm iş parçacıklarındaki tüm yöntemleri bir bakışta gösterir. Aşağıdaki çizimde, aynı bilgilerin soldaki İş Parçacıkları görünümünde ve sağ taraftaki Yöntem Görünümü'nde nasıl göründüğü gösterilmektedir.

Screenshot of Methods view in Parallel Stacks window.

Screenshot of Methods view in Parallel Stacks window 2022.

Yeni bir yığın çerçevesine geçerseniz, bu yöntemi geçerli yöntem yaparsınız ve Yöntem Görünümü yeni yöntem için tüm çağıranları ve çağıranları gösterir. Bu, yöntemin çağrı yığınlarında görünüp görünmediğine bağlı olarak bazı iş parçacıklarının görünümde görünmesine veya kaybolmasına neden olabilir. Çağrı yığını görünümüne dönmek için Yöntem Görünümü araç çubuğu simgesini yeniden seçin.

Paralel yığınlarla iş parçacıklarında ve görevlerde hata ayıklama video öğreticisi

Bu video öğreticileri, çok iş parçacıklı uygulamalarınızda hata ayıklamak için Visual Studio 2022'deki Paralel Yığınlar penceresinin İş Parçacıkları ve Görevler görünümlerini nasıl kullanabileceğinizi gösterir.