Нотация:
if ( MyEvent != null ) {
MyEvent( param1, param2 );
}
не ориентировано на многопотоковое исполнение. Необходимо сделать это этот путь:
EventHandler handler = this.MyEvent;
if ( null != handler ) { handler( param1, param2 ); }
я понимаю, что это - беспокойство, таким образом, можно сделать вспомогательный метод:
static void RaiseEvent( EventHandler handler, object sender, EventArgs e ) {
if ( null != handler ) { handler( sender, e ); }
}
и затем звоните:
RaiseEvent( MyEvent, param1, param2 );
при использовании C# 3.0 можно объявить вспомогательный метод как дополнительный метод:
static void Raise( this EventHandler handler, object sender, EventArgs e ) {
if ( null != handler ) { handler( sender, e ); }
}
и затем звоните:
MyEvent.Raise( param1, param2 );
Также можно создать следующее расширение/вспомогательные методы для других обработчиков событий. Например:
static void Raise<TEventArgs>( this EventHandler<TEventArgs> handler,
object sender, TEventArgs e ) where TEventArgs : EventArgs
{
if ( null != handler ) { handler( sender, e ); }
}
refreshKrb5Config = true
должен быть установлен для KRB5LoginModule в jaas.conf.