Posts

Posts uit september, 2011 tonen

C# delegates Action en MethodInvoker

Beide delegates, Action en MethodInvoker, hebben dezelfde signature: public delegate void MethodInvoker(); public delegate void Action(); Syntactisch zijn ze dus hetzelfde, maar wanneer gebruik je dan welke? Dit antwoord wordt gegeven door de documentatie van Control.Invoke(); De delegate kan een instantie zijn van EventHandler. In dit geval bevat de sender parameter het control en de event parameter bevat EventArgs.Empty. De delegate kan ook instantie zijn van de MethodInvoker, of elke andere delegate die een lege parameter lijst heeft. Een aanroep naar EventHandler of MethodOnvoker delegate is sneller dan een aanroep naar een anderer type delegate Van de dikgedrukte tekst kan geconcludeerd worden dat er binnen de Invoke methode een is/as check plaatsvind en gebruik gemaakt wordt van Invoke, welke aanzienlijk sneller is dan DynamicInvoke.