في أي نقطة في عملية إغلاق نموذج Windows هل يتم إبطال عناصر التحكم؟

StackOverflow https://stackoverflow.com/questions/1729152

  •  19-09-2019
  •  | 
  •  

سؤال

لقد قمت مؤخرا بتعيين بعض الدورات الدراسية لبعض الطلاب الجامعيين الذين يتعين عليهم استخدام مكتبة C # صغيرة وبسيطة نسبيا المقدمة إليهم. الغرض الرئيسي من هذه المكتبة هو عرض نموذج بسيط يتكون من شبكة ملونة (التي يمكنها التعامل معها)، وعدد من الأزرار وتسمية مع بعض النص.

يوفر الفصل الذي يمتد عددا من الطرق المجردة التي يجب أن تنفذها، وهو ما يسمى UPDateAction ويتم استدعاء تلقائيا عند فترات تعيين.

لم أواجه المشكلة التالية بنفسي، لكن في مختبرات، واجه بعض الطلاب بعض الطلاب متقطعين يتم إلقاؤه من داخل طريقة التحديث الخاصة بهم عند إغلاق نموذجهم. رسالة الخطأ هي الخطأ الذي أتوقع عادة أن أرى عند محاولة تعديل واجهة المستخدم من مؤشر ترابط مختلف ولكن هناك مجرد اقتباس مزدوج '' حيث ترى عادة اسم السيطرة المخالفة.
إذا استمر هذا مشكلة، فسوف نحتاج إلى إعادة إصدار نسخة ثابتة من المكتبة إليهم رغم أننا ذكرنا بالفعل أن هذا الخطأ لن يؤثر على وضع علامات عملهم بأي شكل من الأشكال (لأنه يبدو أنه عيب في الكود الخاص بنا) وبعد

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

لذا فإن سؤالي هو في أي نقطة في دورة حياة النماذج تقوم بتحكم عناصر التحكم في التخلص منها وبالتالي فمن الأفضل أن تضع الكود الذي يتوقف عن مؤشر ترابط التحديث؟ حاليا هذا الرمز هو في طريقة التخلص من النماذج، هل سيتم وضعها بشكل أفضل في مكان آخر؟

هل كانت مفيدة؟

المحلول

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

خيط

while (running)
{
    // thread stuff
}

استمارة

thread.running = false; // or use your own Stop() method that does the same thing
thread.Join();

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top