Jak: deklarovat vlastní události šetřit paměť (Visual Basic)
Je důležité, že aplikace zachovat jeho využití paměti nízké existuje několik okolností.Vlastní události povolit aplikaci použít pouze pro události, které zpracovává paměti.
Standardně při prohlašuje třídy událostí, kompilátor přidělí paměť pro pole k uložení informací o události.Pokud mnoho událostí nepoužívané třídy, jejich zbytečně zabírat paměť.
Namísto výchozí implementace událostí, které poskytuje jazyka Visual Basic můžete spravovat více pečlivě využití paměti vlastní události.
Příklad
V tomto příkladu používá třídy jednu instanci EventHandlerList třídy, které jsou uloženy v Events pole ukládat informace o událostech v použití.EventHandlerList Třídy je optimalizovaný seznamu třídy určené pro delegáty.
Všechny události v použití třídy Events pole ke sledování jsou metody zpracování jednotlivých událostí.
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 DoubleClick 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
Viz také
Úkoly
Jak: deklarovat vlastní události zabránit zablokování (Visual Basic)