ما الذي قد يتسبب في إغلاق تطبيق .NET WinForms بشكل سوداني بدون مربع حوار؟

تم الإبلاغ عن تطبيق WinForms الخاص بنا إلى حين غلقه من وقت لآخر. لا يُظهر لنا مربع حوار الخطأ الخاص بنا ، ولا يحتوي على مربع حوار إرسال الخطأ الخاص بـ Windows ، وإنما يتم إغلاقه وغالبًا ، غالبًا عندما يكون الشخص أفكرًا ولا يفعل أي شيء في التطبيق. يبدو أنه حدث شبه نادر ، ربما مثل 2-3 مرات في الشهر ، وهذا حدث لأكثر من شخص واحد. ليس لدي أي فكرة من أين تبدأ في الحصول على حالة التكاثر أو أين تبدأ في تعقب هذا.

C # .NET 2.0 الحالات التي تم الإبلاغ عنها هي على إكس بي وين

هل لدي احد اى افكار؟

3

3 إجابة

تطفُّل المكدس بسبب التكرار غير المحدود سبب كبير في ترك التطبيقات بدون أي تحذير. ما لم تفعل شيئًا متعمدًا لإحداث خروج صامت ، فستعرض الاستثناءات غير المعالجة (بخلاف التجميع الفائض) عادةً نوعًا من واجهة المستخدم قبل إنهاء التطبيق. تجاوز سعة المكدس هو الاستثناء الأكثر شيوعًا (عفوًا ، آسف) لهذه القاعدة.

بطبيعة الحال ، من الرموز غير المُدارة أو غير الآمنة ، من المؤكد أنه من الممكن تقريبًا من وقت التشغيل بالطريقة الصحيحة للتسبب في خروج صامت.

الاقتراحات حول الأجهزة والنظر في سجل أحداث Windows جيدة أيضًا.

4
وأضاف
يبدو وكأنه على الأرجح هو حادث صامت هو الجاني. شكر
وأضاف المؤلف Davy8, مصدر

ستتسبب الاستثناءات في "اختفاء" التطبيق. تحقق من سجلات الأحداث لمعرفة ما إذا كان هناك أي شيء.

تحقق من مدير المهام لمعرفة ما إذا كانت العملية لا تزال موجودة عند اختفاء النافذة. لقد تعرضت لتحطم المستكشف وأخفقت في إعادة رسم النافذة حتى أصبحت Alt-Tabbed أو Switched-To (من مدير المهام).

لا تضعه في الماضي للمستخدمين لننسى بسهولة أنهم يغلقون التطبيق. قد ترغب في وضع بعض منطق تسجيل الدخول في التطبيق لتسجيل إغلاق المستخدم الذي بدأ. في المرة التالية "يختفي" يمكنك التحقق من وجود أي إدخالات سجل.

3
وأضاف
التطبيق ليس في "البرية" حتى الآن حتى أعرف هؤلاء المستخدمين بما فيه الكفاية على ثقة من أنهم لم يغلقوا التطبيق بأنفسهم (يحدث في كثير من الأحيان للنسيان مريحة)
وأضاف المؤلف Davy8, مصدر
كما أن التطبيق لا ينشئ مثيلًا جديدًا إذا كانت هناك عملية أخرى بالفعل ، وكانوا قادرين على إعادة فتح التطبيق ، لذا فقد تحطم بالفعل في صمت ، ولكن بشكل عام هذه أشياء جيدة للتحقق منها.
وأضاف المؤلف Davy8, مصدر

يمكنك إضافة بعض المنطق في الحدث FormClosing لطلب المستخدم إذا كان هذا ما يريدونه فعلاً ، يمكنك عندئذ إلغاء الحدث الختامي وسيستمر تشغيل التطبيق إذا كان كل شيء على ما يرام. اذا واصلتم يلاحظ هذه المشكلة، وأنه لم ينفذ المنطق الخاص بك، وأنت تسير لدينا للحصول على أيديكم القذرة في المصحح.

0
وأضاف