Есть ли способ узнать, вызвано ли событие в его собственном абоненте. По сути, у меня есть 1.N классы, все по сути одинаковые, каждый из которых выполняется потоком. У меня есть перечисление, которое различает основные типы. У меня есть делегат в классе верхнего уровня, ExecutionState, который создает все подклассы (сохраняет их в коллекции). У меня есть следующее в каждом классе. ExecutionState - класс создателя верхнего уровня, который содержит делегат и соответствующее событие как
public void Subscribe(ExecutionState ExecState)
{
if (this.ExpressionInstance.IsMultiLine)
{
ExecState.MultiMatchEvent += new ExecutionState.MultiMatch(Signal);
}
}
private void Signal(int ProcessorPosition)
{
}
private void SendEvent(ExecutionState.MultiMatch Match)
{
if ((Status & RuleState.HasEnd) == RuleState.HasEnd)
{
Match(CurrentProcessorNumber);
}
}
ExecutionState - это класс создателя верхнего уровня, который содержит делегат и соответствующее событие в виде:
public delegate void MultiMatch(int ProcessorPosition);
public event MultiMatch MultiMatchEvent;
Когда я вызываю SendEvent, я предполагаю, что событие придет в Сигнал, в своем собственном классе. Конечно, Subscribe необходимо вызывать только тогда, когда существуют определенные условия, которые я настроил в ExecutionState, то есть в 1 классе, который не будет классом отправителя события (по замыслу).
Я знаю, что, возможно, на это уже много раз отвечали в прошлом. Является ли это делом механического действия, возможно, установкой флага в параметрах события, чтобы определить его как исходящий из его собственного класса, или это более элегантный способ сделать это.
Спасибо.
Боб.