سؤال

لديّ قابلة للتنفيذ مختلط ، ولاحظت أن مُنشئ المتغيرات العالمية الأصلية يسمى في الخيط الرئيسي ، ولكن يتم استدعاء المدمر في بعض الخيوط الأخرى.
اسم الموضوع هو "Thread :: InterdediatethReadProc".

ما هو سبب هذا؟ وما هو موضوع "الموضوع :: intermediateThreadProc"؟

شكرًا.

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

المحلول

الموضوع :: intermediateThreAdProc () هي وظيفة مساعدة صغيرة في CLR التي تستخدم كدالة بدء مؤشر الترابط لأي مؤشر ترابط بدأها CLR. ابحث عنه مرة أخرى في مصدر SSCLI20 ، src vm threads.cpp

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

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