Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

ยกเลิกใน C #


วิธีการ Abort() ใช้สำหรับทำลายเธรด

รันไทม์ยกเลิกเธรดด้วยการโยน ThreadAbortException ไม่สามารถจับข้อยกเว้นนี้ได้ การควบคุมจะถูกส่งไปยังบล็อกสุดท้าย หากมี

ใช้เมธอด Abort() บนเธรด −

childThread.Abort();

ตัวอย่าง

<ก่อนหน้า> ใช้ System; ใช้ System.Threading; namespace MultithreadingApplication { คลาส ThreadCreationProgram { โมฆะคงสาธารณะ CallToChildThread () { ลอง { Console.WriteLine ("เธรดย่อยเริ่มต้น"); // ทำงานบางอย่าง เช่น นับถึง 10 สำหรับ (ตัวนับ int =0; ตัวนับ <=10; ตัวนับ++) { Thread.Sleep(500); Console.WriteLine(เคาน์เตอร์); } Console.WriteLine("หัวข้อย่อยเสร็จสมบูรณ์"); } จับ (ThreadAbortException จ) { Console.WriteLine ("ข้อยกเว้นการยกเลิกเธรด"); } ในที่สุด { Console.WriteLine("ไม่สามารถตรวจจับข้อยกเว้นของเธรด"); } } โมฆะคงที่ Main (สตริง [] args) { ThreadStart childref =ใหม่ ThreadStart (CallToChildThread); Console.WriteLine("ในหลัก:การสร้างเธรดย่อย"); เธรด childThread =เธรดใหม่ (childref); childThread.Start(); //หยุดเธรดหลักชั่วคราว Thread.Sleep(5000); //ตอนนี้ยกเลิกเด็ก Console.WriteLine("ในหลัก:ยกเลิกเธรดย่อย"); childThread.Abort(); Console.ReadKey(); } }}

ผลลัพธ์

ในหลัก:การสร้างเธรดย่อยChild thread เริ่มต้น012345678ในหลัก:การยกเลิกเธรดย่อยThread Abort ExceptionCouldn't catch the Thread Exception