Example #1
0
        private static void NotifyAListenerWithCopy(
            IEnumerable <Frame> motionFrames,
            IEnumerable <Portrait> portraitList,
            IPortraitHandler listener)
        {
            var frameCpy    = listener.WantFrame ? motionFrames.ToList().ConvertAll(m => m.Clone()) : null;
            var portraitCpy = portraitList.ToList().ConvertAll(p => p.Clone());

            try
            {
                listener.HandlePortraits(frameCpy, portraitCpy);
            }
            catch (System.Exception ex)
            {
                frameCpy.ToList().ForEach(f => f.Dispose());
                portraitCpy.ToList().ForEach(p => p.Dispose());
                throw;
            }
        }
        private static void NotifyAListenerWithCopy(
            IList<Frame> motionFrames,
            IList<Portrait> portraitList,
            IPortraitHandler listener)
        {
            var frameCpy = listener.WantFrame ? motionFrames.ToList().ConvertAll(m => m.Clone()) : null;
            var portraitCpy = portraitList.ToList().ConvertAll(p => p.Clone());

            try
            {
                listener.HandlePortraits(frameCpy, portraitCpy);
            }
            catch (System.Exception ex)
            {
                frameCpy.ToList().ForEach(f => f.Dispose());
                portraitCpy.ToList().ForEach(p => p.Dispose());
                throw;
            }
        }