Если у вас есть два класса в одном и том же процессе, вы можете явно рассмотреть цепочку событий, например:
public class Client1 : IEncoder
{
public event EncoderCaller EncoderCalled;
public Client1(IEncoder anotherEncoder)
{
// Listen to event raised on another instance and raise event on this instance.
anotherEncoder.EncoderCalled += OnAnotherEncoderCalled;
}
private void OnAnotherEncoderCalled(object source, EventArgs args)
{
if (EncoderCalled != null)
EncoderCalled(this, EventArgs.Empty);
}
}
В этом случае, например, anotherEncoder
равно DetectionAction
.
Однако, если вы ищете решение для обмена событиями между двумя разными приложениями, работающими в разных процессах, вы можете посмотреть на межпроцессное взаимодействие, как в этом посте:
Прослушивание событий в другом приложении
И приведенный выше пример кода все еще работает, но IEncoder
в этом случае является реализацией с поддержкой IP C, например, прослушиватель очереди сообщений, который вызывает событие при получении сообщения.