Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Jendela Tugas menyerupai jendela Utas , kecuali menampilkan informasi tentang tugas asinkron yang dibuat menggunakan pola asinkron/tunggu, juga disebut pola asinkron berbasis Tugas (TAP) alih-alih informasi berbasis utas. Seperti utas, tugas mewakili operasi asinkron yang dapat berjalan bersamaan; namun, beberapa tugas dapat berjalan pada utas yang sama.
Dalam kode .NET, Anda dapat menggunakan jendela Tugas saat bekerja dengan aplikasi menggunakan pola asinkron/tunggu (Tunggu dan Asinkron di VisualBasic). Namun, tampilan Tugas di jendela Tumpukan Paralel sering lebih membantu untuk men-debug aplikasi asinkron. Untuk informasi selengkapnya, lihat Men-debug aplikasi asinkron.
Dalam kode .NET, Anda dapat menggunakan jendela Tugas saat bekerja dengan aplikasi menggunakan pola asinkron/tunggu (Tunggu dan Asinkron di VisualBasic). Namun, tampilan Tugas di jendela Tumpukan Paralel sering lebih membantu untuk men-debug aplikasi asinkron. Untuk informasi selengkapnya, lihat Utas dan tugas di jendela Tumpukan Paralel.
Tip
Untuk kode C/C++, gunakan tampilan Utas di jendela Tumpukan Paralel saat Anda perlu men-debug grup tugas, algoritma paralel, agen asinkron, dan tugas ringan. Untuk informasi selengkapnya, lihat Utas dan tugas di jendela Tumpukan Paralel.
Anda dapat menggunakan jendela Tugas setiap kali Anda masuk ke debugger. Anda dapat mengaksesnya pada menu Debug dengan mengklik Windows lalu mengklik Tugas. Ilustrasi berikut ini memperlihatkan jendela Tugas dalam mode defaultnya.
Nota
Dalam kode terkelola, Task yang memiliki status TaskStatus.Created, TaskStatus.WaitingForActivation, atau TaskStatus.WaitingToRun mungkin tidak ditampilkan di jendela Tugas saat utas terkelola dalam keadaan sleep atau join.
Informasi Kolom Tugas
Kolom di jendela Tugas memperlihatkan informasi berikut ini.
| Nama Kolom | Deskripsi |
|---|---|
| Bendera | Memperlihatkan tugas mana yang ditandai dan memungkinkan Anda menandai atau membatalkan bendera tugas. |
| Ikon |
|
| ID | Nomor yang disediakan sistem untuk tugas tersebut. Dalam kode asli, ini adalah alamat tugas. |
| Keadaan | Status saat ini (terjadwal, aktif, diblokir, di-deadlock, menunggu, atau selesai) tugas. Arahkan mouse ke atas sel Status untuk melihat informasi selengkapnya tentang blok. Peringatan: Jendela Tugas melaporkan kebuntuan hanya untuk tugas yang diblokir yang menggunakan primitif sinkronisasi yang didukung oleh Wait Chain Traversal (WCT). Misalnya, untuk objek Task yang mengalami deadlock dan menggunakan WCT, debugger melaporkan Menunggu-deadlock. Untuk tugas yang mengalami macet dan dikelola oleh Konkuren Runtime, yang tidak menggunakan WCT, alat debug melaporkan Menunggu. Untuk informasi selengkapnya tentang WCT, lihat Wait Chain Traversal. |
| Waktu Mulai | Waktu ketika tugas mulai aktif. |
| Durasi | Jumlah detik saat tugas telah aktif. |
| Waktu Penyelesaian | Waktu penyelesaian tugas. |
| Tempat | Posisi saat ini di tumpukan panggilan tugas. Arahkan mouse ke atas sel ini untuk melihat seluruh tumpukan panggilan untuk tugas tersebut. Tugas terjadwal tidak memiliki nilai dalam kolom ini. |
| Tugas | Metode awal dan argumen apa pun yang diteruskan ke tugas saat dibuat. |
| AsyncState | Untuk kode terkelola, status tugas. Secara default, kolom ini disembunyikan. Untuk menampilkan kolom ini, buka menu konteks untuk salah satu header kolom. Pilih Kolom, AsyncState. |
| Orang Tua | ID tugas yang membuat tugas ini. Jika kosong, tugas tidak memiliki orang tua. Ini hanya berlaku untuk program terkelola. |
| Penetapan Utas | ID dan nama utas tempat tugas dijalankan. |
| AppDomain | Untuk kode terkelola, domain aplikasi tempat tugas dijalankan. |
| task_group | Untuk kode asli, alamat objek task_group yang menjadwalkan tugas. Untuk agen asinkron dan tugas ringan, kolom ini diatur ke 0. |
| Proses | ID proses yang dijalankan tugas. |
Anda bisa menambahkan kolom ke tampilan dengan mengklik kanan judul kolom lalu memilih kolom yang Anda inginkan. (Hapus kolom dengan mengosongkan pilihan.) Anda juga dapat menyusun ulang kolom dengan menyeretnya ke kiri atau kanan. Menu pintasan kolom diperlihatkan dalam ilustrasi berikut.
Mengurutkan Tugas
Untuk mengurutkan tugas menurut kriteria kolom, klik header kolom. Misalnya, dengan mengklik header kolom ID , Anda bisa mengurutkan tugas menurut ID tugas: 1,2,3,4,5 dan sebagainya. Untuk membalikkan urutan pengurutan, klik header kolom lagi. Kolom pengurutan saat ini dan urutan pengurutan ditunjukkan oleh panah pada kolom.
Mengelompokkan Tugas
Anda bisa mengelompokkan tugas berdasarkan kolom apa pun dalam tampilan daftar. Misalnya, dengan mengklik kanan header kolom Status lalu mengklik Kelompokkan menurut>[status], Anda dapat mengelompokkan semua tugas yang memiliki status yang sama. Misalnya, Anda dapat dengan cepat melihat tugas yang menunggu sehingga Anda dapat fokus pada mengapa tugas tersebut diblokir. Anda juga dapat menciutkan grup yang tidak menarik selama sesi debug. Dengan cara yang sama, Anda dapat mengelompokkan menurut kolom lain. Grup dapat (tidak) ditandai cukup dengan mengklik tombol di samping judul grup. Ilustrasi berikut ini memperlihatkan jendela Tugas dalam mode yang dikelompokkan.
Tampilan Induk-Anak
(Tampilan ini hanya tersedia untuk kode terkelola.) Dengan mengklik kanan header kolom Status lalu mengklik Kelompokkan menurut>Induk, Anda bisa mengubah daftar tugas menjadi tampilan hierarkis, di mana setiap tugas anak adalah sub-simpul yang dapat ditampilkan atau disembunyikan di bawah induknya.
Tugas Penandaan
Anda dapat menandai utas tugas tempat tugas sedang dijalankan dengan memilih item daftar tugas lalu memilih Tandai Utas yang Ditetapkan dari menu konteks, atau dengan mengklik ikon tanda di kolom pertama. Jika Anda menandai beberapa tugas, Anda kemudian dapat mengurutkan pada kolom bendera untuk membawa semua tugas yang ditandai ke bagian atas sehingga Anda bisa fokus pada tugas tersebut. Anda juga dapat menggunakan jendela Tumpukan Paralel untuk melihat hanya tugas yang ditandai. Ini memungkinkan Anda memfilter tugas yang tidak Anda minati untuk debugging. Penanda tidak disimpan di antara sesi penelusuran kesalahan.
Tugas Pembekuan dan Pencairan
Anda dapat membekukan utas tempat tugas dijalankan dengan mengklik kanan item daftar tugas lalu mengklik Bekukan Utas yang Ditetapkan. (Jika tugas sudah dibekukan, perintahnya adalah Thaw Assigned Thread.) Ketika Anda membekukan utas, utas tersebut tidak akan dijalankan ketika Anda melewati kode setelah titik henti saat ini. Perintah Freeze All Threads But This One membekukan semua utas kecuali yang mengeksekusi item dalam daftar tugas.
Ilustrasi berikut ini memperlihatkan item menu lainnya untuk setiap tugas.
Mengalihkan Tugas Atau Bingkai Aktif
Perintah Beralih ke Tugas menjadikan tugas saat ini sebagai tugas aktif. Perintah Beralih ke Bingkai menjadikan bingkai tumpukan yang dipilih sebagai bingkai tumpukan aktif. Konteks dari debugger beralih ke tugas saat ini atau ke bingkai tumpukan yang dipilih.