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:
İş parçacıkları görünümü , uygulamadaki tüm iş parçacıkları için çağrı yığını bilgilerini gösterir. İş parçacıkları ve bu iş parçacıklarındaki yığın çerçeveleri arasında gezinebilirsiniz.
Görevler görünümü , görev merkezli çağrı yığını bilgilerini gösterir.
- Yönetilen kodda Görevler görünümü nesnelerin çağrı yığınlarını System.Threading.Tasks.Task gösterir.
- Yerel kodda Görevler görünümü görev gruplarının çağrı yığınlarını, paralel algoritmaları, zaman uyumsuz aracıları ve basit görevleri gösterir.
Yöntem Görünümü , seçili bir yöntemdeki çağrı yığınını özetler.
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:
Simge | Denetim | Açıklama |
---|---|---|
/İş 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ü. | |
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. | |
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ü. | |
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. | |
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. |
Simge | Denetim | Açıklama |
---|---|---|
/İş 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ü. | |
Filtre Denetimi | Yalnızca ilgilendiğiniz belirli iş parçacıkları kümesi için çağrı yığınlarını gösterir. | |
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. | |
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ü. | |
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. | |
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. |
|
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. | |
Denetimi Kaydet | Paralel yığın penceresindeki içeriği görüntü olarak kaydetmenizi/dışarı aktarmanızı sağlar. | |
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 |
---|---|
Geçerli iş parçacığının geçerli konumunu (etkin yığın çerçevesi) gösterir. | |
Geçerli olmayan bir iş parçacığının geçerli konumunu (etkin yığın çerçevesi) gösterir. | |
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 |
---|---|
Geçerli iş parçacığının geçerli konumunu (etkin yığın çerçevesi) gösterir. | |
Geçerli olmayan bir iş parçacığının geçerli konumunu (etkin yığın çerçevesi) gösterir. | |
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. | |
Geçerli yığın çerçevesinin Kilitlenme gibi Kritik durum uyarısına sahip olduğunu gösterir. | |
Kilitlenme düğümünü gösterir. | |
Geçerli yığın çerçevesinin Beklemede, Kilitte bekleniyor, sahip olduğu vb. ek bilgilere sahip olduğunu gösterir. | |
Geçerli görevin engellenmiş/bekleme durumunda olduğunu vb. gösterir. | |
Ç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.
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. |
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.
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.
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.
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.
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.
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.
- Paralel Yığınlar penceresiyle görevlerde hata ayıklama
- Paralel Yığınlar penceresiyle iş parçacıklarında hata ayıklama