Mengenai ExecuteEngineException, ada deskripsi berikut di .net framework SDK:
"Kesalahan mesin eksekusi adalah kesalahan fatal dan tidak boleh terjadi. Kesalahan seperti itu terutama terjadi ketika mesin eksekusi rusak atau data hilang. Sistem akan membuang pengecualian ini kapan saja Jika memungkinkan, sistem akan mengeluarkan pengecualian yang memberikan lebih banyak informasi daripada ExecutionEngineException.
Aplikasi tidak boleh menampilkan ExecutionEngineException.
Seperti yang dapat dilihat dari uraian ini, ExecutionEngineException tidak boleh dilakukan dalam program normal, kesalahan fatal. Namun, hari ini saya menemui anomali ini berkali-kali.
Situasi spesifiknya kira-kira seperti ini: kontrol COM dengan fungsi penampil, digunakan di .net. Penampil ini memiliki fitur bahwa ketika perubahan tertentu terjadi pada area visual saat ini, dua peristiwa akan terpicu, dalam kasus yang lebih spesifik, perbedaan waktu antara pemicuan kedua peristiwa ini mungkin sangat kecil, hampir terjadi pada waktu yang bersamaan. Saat ini kemungkinan program .net luar akan menyebabkan ExecutionEngineException menjadi sangat tinggi. Pada dasarnya akan ditemui minimal satu kali dalam setiap operasi, dan tentunya hanya dapat ditemui satu kali, karena sekali ditemui maka akan terjadi. hampir akan crash.
Ini seharusnya masih menjadi masalah yang terjadi ketika .net berinteraksi dengan COM. Meskipun saya tidak mengetahui proses spesifiknya, Anda dapat menebak secara kasar: ketika peristiwa pertama terjadi, .net mulai memprosesnya, dan sebelum pemrosesan selesai, peristiwa kedua Peristiwa itu terulang kembali, dan lahirlah anomali.
Lebih mudah menanganinya jika Anda mengetahui alasannya. Tambahkan mekanisme penangguhan peristiwa sehingga interval waktu pemicuan dua peristiwa mana pun tidak akan terlalu kecil untuk menghindari terulangnya dua peristiwa yang memicu hampir pada waktu yang bersamaan. Benar saja, setelah satu kali percobaan, kelainan ini tidak terjadi lagi. Jika Anda mengalami fenomena serupa, sebaiknya coba ide ini.
PS, lingkungan yang saya gunakan di sini adalah .net framework 1.1. Belum diketahui apakah fenomena yang sama terjadi pada .net framework 2.0.
http://www.cnblogs.com/sunwaywei/archive/2006/08/21/482674.html