Bagikan melalui


Menampilkan utas dan tugas di jendela Tumpukan Paralel (C#, Visual Basic, C++)

Jendela Tumpukan Paralel berguna untuk men-debug aplikasi multiutas. Ini memiliki beberapa tampilan:

Menggunakan jendela Tumpukan Paralel

Untuk membuka jendela Tumpukan Paralel, Anda harus berada dalam sesi penelusuran kesalahan. Pilih Debug>Windows>Tumpukan Parallel.

Kontrol bilah alat

Jendela Tumpukan Paralel memiliki kontrol toolbar berikut:

Screenshot of Toolbar in Parallel Stacks window.

Ikon Menguasai Deskripsi
Threads/Tasks combo box Utas/Tugas kotak kombo Mengalihkan tampilan antara tumpukan panggilan utas dan tumpukan panggilan tugas. Untuk informasi selengkapnya, lihat Tampilan tugas dan Tampilan utas.
Show Only Flagged icon Perlihatkan Hanya Berbendera Menampilkan tumpukan panggilan hanya untuk utas yang ditandai di jendela debugger lainnya, seperti jendela Utas GPU dan jendela Pengawasan Paralel.
Toggle Method View icon Ganti Tampilan Metode Beralih antara tampilan tumpukan panggilan dan Tampilan Metode. Untuk informasi lebih lanjut, lihat Tampilan Metode.
Auto Scroll to Current icon Gulir Otomatis ke Bingkai Tumpukan Saat Ini Autoscrolls grafik sehingga bingkai tumpukan saat ini terlihat. Fitur ini berguna ketika Anda mengubah bingkai tumpukan saat ini dari jendela lain, atau ketika Anda menekan titik henti baru dalam grafik besar.
Toggle Zoom icon Ganti Kontrol Zoom Memperlihatkan atau menyembunyikan kontrol zoom di sebelah kiri jendela.

Terlepas dari visibilitas kontrol zoom, Anda juga dapat memperbesar tampilan dengan menekan Ctrl dan memutar roda mouse, atau dengan menekan Ctrl+Shift++ untuk memperbesar dan Perbesar tampilan Ctrl+Shift+- untuk memperkecil tampilan.

Screenshot of Toolbar in Parallel Stacks window 2022.

Ikon Menguasai Deskripsi
Threads/Tasks combo box Utas/Tugas kotak kombo Mengalihkan tampilan antara tumpukan panggilan utas dan tumpukan panggilan tugas. Untuk informasi selengkapnya, lihat Tampilan tugas dan Tampilan utas.
Filter icon Kontrol Filter Menampilkan tumpukan panggilan hanya untuk sekumpulan utas tertentu yang Anda minati.
Show Only Flagged icon Perlihatkan Hanya Berbendera Menampilkan tumpukan panggilan hanya untuk utas yang ditandai di jendela debugger lainnya, seperti jendela Utas GPU dan jendela Pengawasan Paralel.
Toggle Method View icon Ganti Tampilan Metode Beralih antara tampilan tumpukan panggilan dan Tampilan Metode. Untuk informasi lebih lanjut, lihat Tampilan Metode.
Auto Scroll to Current icon Gulir Otomatis ke Bingkai Tumpukan Saat Ini Autoscrolls grafik sehingga bingkai tumpukan saat ini terlihat. Fitur ini berguna ketika Anda mengubah bingkai tumpukan saat ini dari jendela lain, atau ketika Anda menekan titik henti baru dalam grafik besar.
Toggle Zoom icon Ganti Kontrol Zoom Memperlihatkan atau menyembunyikan kontrol zoom di sebelah kiri jendela.

Terlepas dari visibilitas kontrol zoom, Anda juga dapat memperbesar tampilan dengan menekan Ctrl dan memutar roda mouse, atau dengan menekan Ctrl+Shift++ untuk memperbesar dan Perbesar tampilan Ctrl+Shift+- untuk memperkecil tampilan.
Search icon Kontrol Pencarian Dengan fitur ini Anda dapat dengan mudah mencari melalui bingkai tumpukan lalu menggunakan panah untuk menavigasi di antara hasil tersebut.
Save icon Simpan Kontrol Memungkinkan Anda menyimpan/mengekspor konten dari jendela tumpukan paralel sebagai gambar.
External Code icon Perlihatkan Kontrol Kode Eksternal Dengan menggunakan fitur ini, Anda dapat menampilkan/menyembunyikan tumpukan dari kode/pustaka eksternal.

Ikon Bingkai Tumpukan

Ikon berikut ini menyediakan informasi tentang bingkai tumpukan aktif dan saat ini di semua tampilan:

Ikon Deskripsi
Yellow arrow Menunjukkan lokasi saat ini (bingkai tumpukan aktif) dari utas saat ini.
Threads icon Menunjukkan lokasi saat ini (bingkai tumpukan aktif) dari utas yang tidak terkini.
Green arrow Menunjukkan bingkai tumpukan saat ini (konteks debugger saat ini). Nama metode dicetak tebal di mana pun itu muncul.
Ikon Deskripsi
Yellow arrow Menunjukkan lokasi saat ini (bingkai tumpukan aktif) dari utas saat ini.
Threads icon Menunjukkan lokasi saat ini (bingkai tumpukan aktif) dari utas yang tidak terkini.
Green arrow Menunjukkan bingkai tumpukan saat ini (konteks debugger saat ini). Nama metode dicetak tebal di mana pun itu muncul.
Status Error Menunjukkan bahwa bingkai tumpukan saat ini memiliki peringatan status Kritis seperti Kebuntuan.
Status Excluded Menunjukkan simpul yang di-deadlock.
Status Information Menunjukkan bahwa bingkai tumpukan saat ini memiliki informasi tambahan seperti Menunggu, Menunggu dikunci, dimiliki oleh, dll.
Status Blocked Menunjukkan bahwa tugas saat ini dalam status diblokir/menunggu, dll.
Status Running Menunjukkan bahwa tugas yang sedang berjalan.

Item menu konteks

Item menu pintasan berikut ini tersedia saat Anda mengeklik kanan metode dalam tampilan Utas atau tampilan Tugas. Enam item terakhir sama seperti di jendela Tumpukan Panggilan.

Screenshot of Shortcut menu in Parallel Stacks window.

Item menu Deskripsi
Bendera Menandai item terpilih.
Unflag Menghapus tanda kuota item yang dipilih.
Membekukan Membekukan unsur terpilih.
Thaw Mencairkan item yang dipilih.
Beralih ke Bingkai Sama seperti perintah menu yang sesuai di jendela Tumpukan Panggilan. Namun, di jendela Tumpukan Paralel, satu metode mungkin berada dalam beberapa bingkai. Anda dapat memilih bingkai yang Anda inginkan di submenu untuk item ini. Jika salah satu bingkai tumpukan berada di utas saat ini, bingkai tersebut dipilih secara default di submenu.
Buka Tugas atau Buka Utas Beralih ke tampilan Tugas atau Utas, dan menjaga agar bingkai tumpukan yang sama tetap disorot.
Buka Kode Sumber Masuk ke lokasi yang sesuai di jendela kode sumber.
Buka Pembongkaran Pergi ke lokasi yang sesuai di jendela Pembongkaran.
Perlihatkan Kode Eksternal Memperlihatkan atau menyembunyikan kode eksternal.
Tampilan Heksadesimal Beralih antara tampilan desimal dan heksadesimal.
Perlihatkan Utas di Sumber Menandai lokasi utas di jendela kode sumber.
Informasi Beban Simbol Membuka kotak dialog Informasi Pemuatan Simbol.
Pengaturan Simbol Membuka kotak dialog Pengaturan Simbol.

Screenshot of Shortcut menu in Parallel Stacks window 2022.

Item menu Deskripsi
Salinan Salin item terpilih.
Pilih Semua Bingkai Di Bawah Ini Memilih semua bingkai di bawah tumpukan yang dipilih.
Bendera Menandai item terpilih.
Unflag Menghapus tanda kuota item yang dipilih.
Membekukan Membekukan unsur terpilih.
Thaw Mencairkan item yang dipilih.
Beralih ke Bingkai Sama seperti perintah menu yang sesuai di jendela Tumpukan Panggilan. Namun, di jendela Tumpukan Paralel, satu metode mungkin berada dalam beberapa bingkai. Anda dapat memilih bingkai yang Anda inginkan di submenu untuk item ini. Jika salah satu bingkai tumpukan berada di utas saat ini, bingkai tersebut dipilih secara default di submenu.
Buka Tugas atau Buka Utas Beralih ke tampilan Tugas atau Utas, dan menjaga agar bingkai tumpukan yang sama tetap disorot.
Buka Kode Sumber Masuk ke lokasi yang sesuai di jendela kode sumber.
Buka Pembongkaran Pergi ke lokasi yang sesuai di jendela Pembongkaran.
Perlihatkan Kode Eksternal Memperlihatkan atau menyembunyikan kode eksternal.
Tampilan Heksadesimal Beralih antara tampilan desimal dan heksadesimal.
Perlihatkan Utas di Sumber Menandai lokasi utas di jendela kode sumber.
Informasi Beban Simbol Membuka kotak dialog Informasi Pemuatan Simbol.
Pengaturan Simbol Membuka kotak dialog Pengaturan Simbol.

Tampilan utas

Dalam tampilan Utas, bingkai tumpukan dan jalur panggilan utas saat ini disorot dengan warna biru. Lokasi utas saat ini ditandai oleh panah kuning.

Untuk mengubah bingkai tumpukan saat ini, klik dua kali metode yang berbeda. Ini mungkin juga mengalihkan utas saat ini, tergantung pada apakah metode yang Anda pilih adalah bagian dari utas saat ini atau utas lain.

Saat grafik tampilan Utas terlalu besar untuk dapat masuk ke jendela, kontrol Sudut Pandang Burung muncul di jendela. Anda dapat memindahkan bingkai dalam kontrol untuk menavigasi ke berbagai bagian grafik.

Ilustrasi berikut menunjukkan satu utas yang beralih dari Utama ke transisi Kode Terkelola ke Asli. Enam utas berada dalam metode saat ini. Satu berlanjut ke Thread.Sleep, dan yang lain berlanjut ke Console.WriteLine lalu ke SyncTextWriter.WriteLine.

Screenshot of Threads view in Parallel Stacks window.

Tabel berikut menjelaskan fitur utama tampilan Utas:

Boks keterangan Nama elemen Deskripsi
1 Memanggil segmen tumpukan atau simpul Berisi serangkaian metode untuk satu atau beberapa utas. Jika bingkai tidak memiliki garis panah yang tersambung ke bingkai tersebut, bingkai akan menampilkan seluruh jalur panggilan untuk utas.
2 Sorotan biru Menunjukkan jalur panggilan utas saat ini.
3 Garis panah Koneksi simpul untuk membentuk seluruh jalur panggilan untuk utas.
4 Judul simpul Memperlihatkan jumlah proses dan utas untuk simpul.
5 Metode Mewakili satu atau beberapa bingkai tumpukan dalam metode yang sama.
6 Tooltip pada metode Muncul saat Anda mengarahkan mouse ke atas metode. Dalam tampilan Utas, tooltip menampilkan semua utas, dalam tabel yang mirip dengan jendela Utas.

Ilustrasi berikut menunjukkan satu utas yang beralih dari Utama ke transisi Kode Terkelola ke Asli. Lima utas berada dalam metode saat ini. Satu berlanjut ke ServerClass.InstanceMethod, dan yang lain berlanjut ke Worker.Thread.Start dan kemudian ke StartupHook.Initialize.AnonymousMethod.

Screenshot of Threads view in Parallel Stacks window 2022.

Tabel berikut menjelaskan fitur utama tampilan Utas:

Boks keterangan Nama elemen Deskripsi
1 Memanggil segmen tumpukan atau simpul Berisi serangkaian metode untuk satu atau beberapa utas. Jika bingkai tidak memiliki garis panah yang tersambung ke bingkai tersebut, bingkai akan menampilkan seluruh jalur panggilan untuk utas.
2 Sorotan biru Menunjukkan jalur panggilan utas saat ini.
3 Garis panah Koneksi simpul untuk membentuk seluruh jalur panggilan untuk utas.
4 Judul simpul Memperlihatkan jumlah proses/utas, nama utas, dan ID utas untuk simpul.
5 Metode Mewakili satu atau beberapa bingkai tumpukan dalam metode yang sama.
6 Tooltip pada metode Muncul saat Anda mengarahkan mouse ke atas metode. Dalam tampilan Utas, tooltip menampilkan semua utas, dalam tabel yang mirip dengan jendela Utas.

Tampilan tugas

Jika aplikasi Anda menggunakan objek System.Threading.Tasks.Task (kode terkelola) atau objek task_handle (kode asli) untuk mengekspresikan paralelisme, Anda dapat menggunakan tampilan Tugas. Tampilan tugas memperlihatkan tumpukan tugas panggilan, bukan utas.

Dalam tampilan Tugas:

  • Tumpukan panggilan utas yang tidak menjalankan tugas tidak ditampilkan.
  • Tumpukan panggilan utas yang menjalankan tugas dipangkas secara visual di bagian atas dan bawah, untuk memperlihatkan bingkai yang paling relevan untuk tugas.
  • Ketika beberapa tugas berada di satu utas, tumpukan panggilan tugas tersebut ditampilkan dalam simpul terpisah.

Untuk melihat seluruh tumpukan panggilan, beralih kembali ke tampilan Utas dengan mengeklik kanan dalam bingkai tumpukan dan memilih Buka Utas.

Ilustrasi berikut ini memperlihatkan tampilan Utas di bagian atas dan tampilan Tugas terkait di bagian bawah.

Screenshot of Threads and Tasks views.

Screenshot of Tasks view in Parallel Stacks window.

Arahkan mouse ke atas metode untuk menampilkan tooltip dengan informasi tambahan. Dalam tampilan Tugas, tooltip memperlihatkan semua tugas dalam tabel yang mirip dengan jendela Tugas.

Gambar berikut menunjukkan tooltip untuk metode dalam tampilan Utas di bagian atas dan untuk tampilan Tugas yang sesuai di bagian bawah.

Screenshot of Threads and Tasks tooltips.

Screenshot of Threads and Tasks tooltips.

Tampilan Metode

Dari tampilan Utas atau tampilan Tugas, Anda dapat mempivot grafik pada metode saat ini dengan memilih ikon Alihkan Tampilan Metode pada toolbar. Tampilan Metode menunjukkan sekilas semua metode pada semua utas yang memanggil atau dipanggil oleh metode saat ini. Ilustrasi berikut menunjukkan tampilan informasi yang sama dalam tampilan Utas di sebelah kiri dan di Tampilan Metode di sebelah kanan.

Screenshot of Methods view in Parallel Stacks window.

Screenshot of Methods view in Parallel Stacks window 2022.

Jika Anda beralih ke bingkai tumpukan baru, Anda membuat metode tersebut sebagai metode saat ini, dan Tampilan Metode memperlihatkan semua penelepon dan penerima panggilan untuk metode baru. Ini dapat menyebabkan beberapa utas muncul atau menghilang dari tampilan, tergantung pada apakah metode tersebut muncul pada tumpukan panggilan mereka. Untuk kembali ke tampilan tumpukan panggilan, pilih ikon toolbar Tampilan Metode lagi.

Men-debug utas dan tugas dengan tutorial video tumpukan paralel

Tutorial video ini menunjukkan bagaimana Anda dapat menggunakan tampilan Utas dan Tugas dari jendela Parallel Stacks di Visual Studio 2022 untuk men-debug aplikasi multithread Anda.