Threadsafelogeventhandler

Num2

New member
09.07.2012
4
0
#1
Всем привет.
Скажите, можно ли создавать 2 и более ThreadSafeLogEventHandler событий между 2мя разными классами, чтобы передавать нужную инфу... создал 1 событие - все ок, создаю еще одно такое событие - начинается проблемы: "Несколько аргументов делегата "AfyControls.NotificationCenterWindow.ThreadSafeLogEventHandler" являются недопустимыми"

Откусил кусок связанный именно с событием... Подскажите, может пропустил что-то..

1й класс

Код:
RemoveMessagePanel event_ = new RemoveMessagePanel(id); 
OnErrorInLogThread(event_);

LoadMessagePanel Load_event_ = new LoadMessagePanel(AfyEN._AddEventNotification.eventNotificationId); 
OnLoad(Load_event_);


public event ThreadSafeLogEventHandler ThreadSafeLogHandler; 

protected virtual void OnErrorInLogThread(RemoveMessagePanel e)
{
if (ThreadSafeLogHandler != null)
{
ThreadSafeLogHandler(this, e);
}
}


public class RemoveMessagePanel : EventArgs
{
private string idMsg_;

public RemoveMessagePanel(string id)
{
this.idMsg_ = id;
}

public string ErrorLogThread
{
get
{
return idMsg_;
}
}
}

/*----------------------------------------------------------*/

public event ThreadSafeLogEventHandler OnNotificationsListLoaded; 

protected virtual void OnLoad(LoadMessagePanel e)
{
if (OnNotificationsListLoaded != null)
{
OnNotificationsListLoaded(this, e);
}
}


public class LoadMessagePanel : EventArgs
{
private string idMsgload_;

public LoadMessagePanel(string id)
{
this.idMsgload_ = id;
}

public string ErrorLogThread
{
get
{
return idMsgload_;
}
}
}
2й класс

Код:
notificationCenterWindow1.ThreadSafeLogHandler += new AfyControls.NotificationCenterWindow.ThreadSafeLogEventHandler(OnErrorInLogThread);

notificationCenterWindow1.ThreadSafeLogHandler += new AfyControls.NotificationCenterWindow.ThreadSafeLogEventHandler(OnLoad);

private void OnErrorInLogThread(object sender, AfyControls.NotificationCenterWindow.RemoveMessagePanel e)//Событие при получении ошибки в внутреннем потоке класса ThreadSafeLog
{
Invoke(new ShowErrorFromThread(SetErrorLabel), new object[] { e.ErrorLogThread }); 
MessageBox.Show(e.ErrorLogThread);
}

private void OnLoad(object sender, AfyControls.NotificationCenterWindow.LoadMessagePanel e)
{
Invoke(new ShowErrorFromThread(SetErrorLabel), new object[] { e.ErrorLogThread }); 
MessageBox.Show(e.ErrorLogThread);
}