مراجع ضعيفة
لا حاوي المهملات تجميع كائن قيد استخدم من قبل تطبيق ما بينما يمكنك الوصول إلى تعليمات برمجية للتطبيق على هذا الكائن. تطبيق هو يقال أن مرجع الكائن قوي.
مرجع ضعيف يسمح حاوي المهملات بجمع كائن بينما لا تزال تسمح للتطبيقات بالوصول إلى كائن. مرجع ضعيف هو صالحة فقط خلال الفترة الزمنية إلى أن الكائن غير معرفة هو جمع عندما لا exهوt مراجع قوية. عند استخدام مرجع ضعيف، يمكن الحصول على مرجع قوي من قبل تطبيق لا يزال إلى الكائن، والذي يحول التي يتم جمعها. ومع ذلك، هناك هو rهوk الذي حاوي المهملات سيكون بإمكانك الكائن أول قبل مرجع قوي دائماً هو reestablهوhed.
مراجع ضعيفة مفيدة للكائنات التي تستخدم كثير من ذاكرة، ولكن تتم إعادة يمكن أن يكون إنشاء بسهولة إذا تم استخلاص بواسطة تجميع البيانات المهملة.
فرض عرض طريقة عرض شجرة في أحد تطبيقات Windows Forms اختيار خيارات هيكلية معقدة إلى المستخدم. إذا كانت البيانات الأساسية هو قطر أيمن متوسط، للحفاظ على شجرة وحدة التحكم في ذاكرة هو فعالة عندما مستخدم هو متعلق بشيء آخر في تطبيق.
عند تبديل مستخدم بالخارج إلى جزء آخر من تطبيق، يمكنك استخدام WeakReferenceفئة لإنشاء مرجع ضعيف إلى شجرة وحدة التحكم وإتلاف الجميع مراجع قوية. عندما ينتقل مستخدم إلى شجرة وحدة التحكم، يحاول تطبيق للحصول على مرجع قوي إلى الشجرة و، في حالة نجاح ذلك، تجنب reconstructing شجرة وحدة التحكم.
إلى تأسيس مرجع ضعيف بكائن، تقوم بإنشاء WeakReferenceاستخدام المثيل من الكائن إلى التعقب. تقوم بتعيين Targetخاصية التي كائن وتعيين كائن إلى null. على سبيل مثال التعليمات برمجية راجع WeakReferenceفي مكتبة الفئات.
قصيرة و بعيدة مراجع ضعيف
يمكنك إنشاء مرجع ضعيف قصير أو مرجع ضعيف طويلة:
قصير
الهدف من ضعيف قصير مرجع nullعندما يكون للكائن استخلاص بواسطة تجميع البيانات المهملة. ضعيف مرجع نفسه كائن مدار، ويخضع لمجموعة البيانات المهملة تماما مثل أي كائن آخر التي تمت إدارتها. هو مرجع ضعيف قصير الدالة الإنشائية افتراضي ل WeakReference.
Long (طويل)
مرجع ضعيف طويلة هو الاحتفاظ بعد اسم الكائن Finalizeاستدعاء الأسلوب. يسمح هذا الكائن إلى تتم إعادة يتم إنشاء، ولكن الولاية يبقى كائن غير متوقع. إلى استخدم فترة طويلة مرجعاً، حدد trueفي WeakReferenceالمنشئ.
إذا لم يكن لدى نوع الكائن Finalizeوظيفة مرجع ضعيف قصير بتطبيق أسلوب، ومرجع ضعيف هو صالحة فقط حتى الهدف هو تجميعها، والتي يمكن أن تحدث في أي وقت بعد أداة الإنهاء هو التشغيل.
لتأسيس مرجع قوية واستخدام كائن مرة أخرى، بتحويل Targetخاصية WeakReferenceإلى النوع كائن. إذا كانت Targetخاصية بإرجاع null، تم تجميع الكائن؛ وإلا، يمكنك الاستمرار في إلى تستخدم الكائن لأنه يحتوي على تطبيق regained مرجع قوي إلى it.
إرشادات حول استخدام مراجع ضعيف
استخدام مراجع طويلة ضعيفة فقط عند الضرورة كـ الولاية الكائن غير متوقع بعد الإنهاء.
تجنب استخدام مراجع ضعيفة إلى كائنات صغيرة لأنه قد يكون المؤشر نفسه قطر أيمن متوسط أو بقعة صغيرة.
تجنب استخدام مراجع ضعيفة كحل تلقائي للمشاكل المتعلقة بإدارة ذاكرة. بدلاً من ذلك، قم بتطوير نهج ذاكرة تخزين مؤقت فعالة لمعالجة الكائنات في تطبيق الخاص بك.