سؤال

هل من الممكن في تطبيق الاتفاق الإطاري لمنع جمع القمامة من وقف دون قيد أو شرط واحد على الأقل من المواضيع، أو لمنع GC يجمع على الأقل في بعض أجزاء من الشفرة؟

واعتقد انه لديه للتعامل مع تحديد الأولويات في الوقت الحقيقي، ولكنني وجدت الكثير من إهدار لفعل ذلك.

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

المحلول

ووGC يحتاج إلى تجميد كل المواضيع من أجل تفتيش جميع الكائنات. كيف يمكن أن تقوم بعملها، وإذا كان بعض موضوع قيد التشغيل ويتم تعديل / إنشاء كائن؟

وأفضل لا تفعل ذلك.

وماذا يمكنك أن تفعل thogh، هو استدعاء الأسلوب GC.Collect () وGC.WaitForPendingFinalizers () قبل أن تدخل في حالة حيث كنت لا تريد أن توقف. هذا وسوف تعطيك بعض الوقت.

نصائح أخرى

لا يسمح

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

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