Menamatkan thread yang sedang berjalan boleh menimbulkan cabaran, terutamanya apabila menggunakan kaedah Thread.Abort(). Daripada mengganggu urutan secara tiba-tiba, adalah disyorkan untuk menggunakan pendekatan yang lebih kerjasama.
Reka bentuk urutan anda dengan mekanisme yang membolehkannya membunuh diri dengan anggun. Memperkenalkan bendera boolean, seperti keepGoing, yang anda boleh tetapkan kepada palsu untuk memberi isyarat agar benang berhenti. Dalam utas, gunakan gelung seperti ini:
while (keepGoing) { /* Perform work. */ }
Jika utas itu terdedah kepada disekat dalam fungsi Tidur atau Tunggu, jadikannya responsif kepada gangguan dengan memanggil Thread.Interrupt(). Urutan harus mengendalikan ThreadInterruptedExceptions dengan sewajarnya:
try { while (keepGoing) { /* Perform work. */ } } catch (ThreadInterruptedException exception) { /* Clean up and exit gracefully. */ }
Pendekatan ini memastikan rangkaian itu boleh ditamatkan dengan bersih, meminimumkan potensi gangguan atau kehilangan data. Ingat, Thread.Abort() harus dielakkan kerana sifatnya yang mengganggu.
Atas ialah kandungan terperinci Apakah Alternatif Lebih Selamat untuk Thread.Abort() dalam Penamatan Thread .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!