/// <summary> /// Subcsribes <paramref name="ObjectThatConsumesItems"/> to <paramref name="ObjectThatProducesItems"/>, so that when <paramref name="ObjectThatProducesItems"/> produces items <paramref name="ObjectThatConsumesItems"/> begins consuming /// </summary> /// <typeparam name="T"></typeparam> /// <param name="ObjectThatConsumesItems"></param> /// <param name="ObjectThatProducesItems"></param> public static void ObserveCollection <T>(this IConcurrentInvokable <T> ObjectThatConsumesItems, IConcurrentOutput <T> ObjectThatProducesItems) { ObjectThatProducesItems.HookEvents(ObjectThatConsumesItems); }
private static void UnHookEvents <T>(this IConcurrentEvent <T> host, IConcurrentInvokable <T> subscriber) { host.Finished -= subscriber.Invoke; host.CollectionChanged -= subscriber.Invoke; host.Started -= subscriber.Invoke; }
public static void StopObserving <T>(this IConcurrentInvokable <T> ObjectThatConsumesItems, IConcurrentOutput <T> ObjectThatProducesItems) { ObjectThatProducesItems.UnHookEvents(ObjectThatConsumesItems); }