この拡張メソッドはスレッドセーフですか?拡張メソッドはスレッドセーフですか?
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);
}
}
またはこれを変更する必要がありますか?
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);
}
}
スレッディングに関するイベントの設計と実装の詳細http://stackoverflow.com/questions/786383/c-events-and-thread-safety – user44298