كيفية القيام بما يلي: إعلان عن أحداث العادية لحفظ الذاكرة

هناك ظروف متعددة عندما يكون من المهم أن تقوم أحد التطبيقات بالاحتفاظ باستخدام ذاكرة منخفضة الخاصه به . أحداث مخصصه تسمح للتطبيق باستخدام ذاكرة فقط من أجل الأحداث التي يتعامل معها.

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

بدلاً من استخدام التطبيق الافتراضي للأحداث التي يوفرها ال Visual Basic "، يمكنك استخدام أحداث مخصصة لإدارة استخدام الذاكرة بعناية أكثر.

مثال

في هذا المثال تستخدم الفئة مثيل واحد من فئة EventHandlerList ، مخزن في حقل Events لتخزين معلومات حول الأحداث قيد الاستخدام. فئة ال EventHandlerList عبارة عن فئة قائمة محسّنة صممت لتقييد المفوضين.

كل الأحداث في الفئة تستخدم حقل ال Events لتعقّب ما هي الأساليب المعالجة لكل حدث.

Public Class MemoryOptimizedBaseControl
    ' Define a delegate store for all event handlers.
    Private Events As New System.ComponentModel.EventHandlerList

    ' Define the Click event to use the delegate store.
    Public Custom Event Click As EventHandler
        AddHandler(ByVal value As EventHandler)
            Events.AddHandler("ClickEvent", value)
        End AddHandler
        RemoveHandler(ByVal value As EventHandler)
            Events.RemoveHandler("ClickEvent", value)
        End RemoveHandler
        RaiseEvent(ByVal sender As Object, ByVal e As EventArgs)
            CType(Events("ClickEvent"), EventHandler).Invoke(sender, e)
        End RaiseEvent
    End Event

    ' Define the Click event to use the same delegate store.
    Public Custom Event DoubleClick As EventHandler
        AddHandler(ByVal value As EventHandler)
            Events.AddHandler("DoubleClickEvent", value)
        End AddHandler
        RemoveHandler(ByVal value As EventHandler)
            Events.RemoveHandler("DoubleClickEvent", value)
        End RemoveHandler
        RaiseEvent(ByVal sender As Object, ByVal e As EventArgs)
            CType(Events("DoubleClickEvent"), EventHandler).Invoke(sender, e)
        End RaiseEvent
    End Event

    ' Define additional events to use the same delegate store.
    ' ...
End Class

راجع أيضًا:

المهام

كيفية القيام بما يلي: الإعلان عن أحداث مخصصة لتجنب الحظر

المرجع

EventHandlerList

موارد أخرى

الـأحداث (Visual Basic)