У меня есть класс обработчика камеры, который при каждом получении данных кадра вызывает событие, как показано ниже:
public delegate void FrameAcquiredCallback(byte[] frameData);
public void OnFrameArrived(MediaFrameReader sender, MediaFrameArrivedEventArgs args) {
FrameAcquired.Invoke(buffer); // buffer is a byte[] that I set up previously.
}
Как только объект класса хочет получить доступ к этому byte[] frameData
, все, что ему нужносделать, это подписаться на событие, как показано ниже:
public class Start1
{
public CameraHandler camera;
public void Start()
{
camera = new CameraHandler();
camera.FrameAcquired += eventTest1;
}
public static void eventTest1(byte[] frameData)
{
Console.WriteLine("Received1");
}
}
Теперь, что я хочу сделать, это иметь не только один класс, но несколько объектов различных классов, чтобы иметь возможность подписаться на одно и то же событие и иметь доступ кbyte[] frameData
.
Когда я создаю новый класс и подписываюсь аналогично, у меня теперь есть два экземпляра CameraHandlers, которые не будут работать.
Каков наиболее чистый и «нормальный» способ реализации этой функциональности?