Rangkaian latar depan dan latar belakang

Rangkaian terkelola dapat berupa rangkaian latar belakang atau rangkaian latar depan. Rangkaian latar belakang identik dengan rangkaian latar depan dengan satu pengecualian: rangkaian latar belakang tidak menjaga lingkungan eksekusi terkelola tetap berjalan. Setelah semua rangkaian latar depan dihentikan dalam proses terkelola (tempat file .exe adalah perakitan terkelola), sistem menghentikan semua rangkaian latar belakang dan dimatikan.

Catatan

Saat runtime menghentikan rangkaian latar belakang karena proses dimatikan, tidak ada pengecualian dilemparkan ke rangkaian. Namun, saat rangkaian dihentikan karena metode AppDomain.Unload membongkar domain aplikasi, ThreadAbortException dilemparkan di rangkaian latar depan dan latar belakang.

Gunakan properti Thread.IsBackground untuk menentukan jika rangkaian adalah latar belakang atau latar depan, atau untuk mengubah statusnya. Rangkaian dapat diubah menjadi rangkaian latar belakang kapan saja dengan mengatur propertinya IsBackground ke true.

Penting

Status latar depan atau latar belakang rangkaian tidak memengaruhi hasil pengecualian yang tidak tertangani dalam rangkaian. Pengecualian yang tidak tertangani di rangkaian latar depan atau latar belakang menghasilkan penghentian aplikasi. Lihat Pengecualian dalam Rangkaian Terkelola.

Rangkaian yang termasuk dalam kumpulan rangkaian terkelola (yaitu, rangkaian yang properti IsThreadPoolThread-nya adalah true) adalah rangkaian latar belakang. Semua rangkaian yang memasuki lingkungan eksekusi terkelola dari kode yang tidak dikelola ditandai sebagai rangkaian latar belakang. Semua rangkaian yang dihasilkan dengan membuat dan memulai objek Thread baru secara default adalah rangkaian latar depan.

Jika Anda menggunakan rangkaian untuk memantau aktivitas, seperti koneksi soket, atur properti IsBackground ke true sehingga rangkaian tidak mencegah proses Anda dihentikan.

Lihat juga