Czy ta metoda rozszerzenia jest bezpieczna?Czy metoda rozszerzenia jest bezpieczna?
public static class Extensions
{
public static void Raise<T>(this EventHandler<T> handler,
object sender, T args) where T : EventArgs
{
if (handler != null) handler(sender, args);
}
}
Czy muszę to zmienić?
public static class Extensions
{
public static void Raise<T>(this EventHandler<T> handler,
object sender, T args) where T : EventArgs
{
var h = handler;
if (h!= null) h(sender, args);
}
}
szczegóły dotyczące projektowania i wdrażania zdarzeń dotyczących wątków http://stackoverflow.com/questions/786383/c-events-and-thread-safety – user44298