4
เหตุใด Environment.Exit () จึงไม่ยุติโปรแกรมอีกต่อไป
นี่คือสิ่งที่ฉันค้นพบเมื่อไม่กี่วันที่ผ่านมาฉันได้รับคำยืนยันว่ามันไม่ได้ จำกัด อยู่แค่เครื่องของฉันจากคำถามนี้ วิธีที่ง่ายที่สุดในการทำซ้ำคือเริ่มแอปพลิเคชัน Windows Forms เพิ่มปุ่มและเขียนโค้ดนี้: private void button1_Click(object sender, EventArgs e) { MessageBox.Show("yada"); Environment.Exit(1); // Kaboom! } โปรแกรมล้มเหลวหลังจากคำสั่ง Exit () ดำเนินการ ใน Windows Forms คุณจะได้รับ "ข้อผิดพลาดในการสร้างจุดจับหน้าต่าง" การเปิดใช้งานการดีบักที่ไม่มีการจัดการทำให้ค่อนข้างชัดเจนว่าเกิดอะไรขึ้น COMห่วงกิริยากำลังดำเนินการและช่วยให้ WM_PAINT ข้อความที่จะส่งมอบ นั่นเป็นอันตรายถึงชีวิตในรูปแบบที่กำจัดทิ้ง ข้อเท็จจริงเดียวที่ฉันรวบรวมมาคือ: ไม่ได้ จำกัด อยู่แค่การรันกับดีบักเกอร์เท่านั้น สิ่งนี้ล้มเหลวหากไม่มี ค่อนข้างต่ำเช่นกัน WER ผิดพลาดแสดงโต้ตอบขึ้นสองครั้ง มันไม่ได้มีอะไรเกี่ยวข้องกับบิตของกระบวนการ เลเยอร์ wow64 ค่อนข้างมีชื่อเสียง แต่การสร้าง AnyCPU ขัดข้องในลักษณะเดียวกัน ไม่มีส่วนเกี่ยวข้องกับ. NET …